Estoy siguiendo el curso de jQuery de Codigo Facilito. Tengo este codigo:
$(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:
<?php
$resultado = $_POST['val1'] + $_POST['val2'];
echo $resultado;
?>
y por ultimo mi html:
<!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
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)
Entonces debo colocar el resto del codigo dentro de la funcion anonima?
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
Tu función se llama "suma" pero invocas "sumar". Linea 6 y 3 respectivamente.
Saludos
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