Problema con jQuery peticion Ajax

Iniciado por Diesan Romero, 4 Octubre 2017, 03:16 AM

0 Miembros y 1 Visitante están viendo este tema.

Diesan Romero

Estoy siguiendo el curso de jQuery de Codigo Facilito. Tengo este codigo:

Código (javascript) [Seleccionar]

$(function(){
$('#ejecutar').click(function(){
sumar($('#valor1').val(), $('#valor2').val());
});
function suma(val1,val2){
var parametros = {
"val1":val1,
"val2":val2,
}
$.ajax({
data:parametros,
url:"suma.php",
type:"post",
beforeSend: function(){
console.log("Se esta procesando la peticion");
}
})
.done(function(data){
$('#resultado').text(data)
//console.log(data)
})
}
});


y este en php que es el que supuestamente tiene que hacer la suma:

Código (php) [Seleccionar]

<?php
$resultado $_POST['val1'] + $_POST['val2'];
echo $resultado;
?>



y por ultimo mi html:

Código (html4strict) [Seleccionar]

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hola</title>
</head>

<body>
<center><h1>Ejemplo Ajax</h1></center>
<input type="text" id="valor1">
<input type="text" id="valor2">
<input type="submit" id="ejecutar" value="Sumar">

<h3 id="resultado"></h3>

<script src="js/jquery-3.2.1.min.js">
</script>
<script src="js/main.js"></script>
</body>
</html>


el error que me tira la consola es el siguiente: ReferenceError: sumar is not defined, me dice que es en la linea 3:3

engel lex

Estás declarando suma dentro de la función anónima, al momento de realizarse probablemente no esté en ese scope (porque es un evento disparado)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Diesan Romero

Entonces debo colocar el resto del codigo dentro de la funcion anonima?

engel lex

Cita de: magodiesan en  4 Octubre 2017, 03:23 AM
Entonces debo colocar el resto del codigo dentro de la funcion anonima?

Que resto? Si está todo dentro de la función anónima

Tienes que pasar sumar al scope global
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

#!drvy

Tu función se llama "suma" pero invocas "sumar". Linea 6 y 3 respectivamente.

Saludos

Diesan Romero

Ya lo arregle, el error era que la funcion se llamaba sumar, mientras que yo le habia puesto suma. Gracias por la ayuda Engl lex