Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Envio de Datos por ajax

Estas en el tema de Envio de Datos por ajax en el foro de Frameworks JS en Foros del Web. Primero que nada agradecer por la respuesta que me puedan brindar, estoy aprendiendo ajax pero sin usar alguna librería que existe para ello me estoy ...
  #1 (permalink)  
Antiguo 14/01/2011, 11:42
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 11 meses
Puntos: 0
Envio de Datos por ajax

Primero que nada agradecer por la respuesta que me puedan brindar, estoy aprendiendo ajax pero sin usar alguna librería que existe para ello me estoy guiando de algunos tutoriales y me propuse hacer las 4 operaciones, es decir me cargue un index.html y que luego según se halla seleccionado me muestre el resultado pero no he podido lograrlo porque parece que no llego a enviar los datos al servidor por ajax pero si lo hago sin ajax si logro mostrar los datos, por favor ayúdenme para solucionar este problema que tengo.

Index.html

<html >
<head>
<title>Operaciones Matemáticas</title>
<script language="javascript" type="text/javascript">

function obtenerXmlHttp()
{

var oXmlHttp;

try
{
oXmlHttp = new XMLHttpRequest(); /* p.e. Firefox */
}
catch(err1)
{
try
{
oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

/* algunas versiones IE */
}
catch(err2)
{
try
{
oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

/* algunas versiones IE */
}
catch(err3)
{
oXmlHttp = false;
}
}
}
return oXmlHttp;
}

var ajax = obtenerXmlHttp();

function ejecutarAjax()
{
var n1 = document.getElementById('numero1').value;
var n2 = document.getElementById('numero2').value;
var op = document.getElementById('operacion').value;
ajax.open("POST","operaciones.php",true);
ajax.onreadystatechange=obtenerResultado;
ajax.setRequestHeader("Content-Type", "application/x-www-formurlencoded");
ajax.send("numero1="+n1+"&numero2="+n2+"&operacion ="+op);
}

function obtenerResultado()
{
if(ajax.readyState==4)
{
if (ajax.status==200)
{
document.getElementById('resultado').innerHTML = ajax.responseText;
}
else
{
document.getElementById('resultado').innerHTML='A ocurrido un error, '+ajax.statusText;
}
}
else
{
document.getElementById('resultado').innerHTML='Pr ocesando...';
}
}

</script>

</head>
<body>
<center>
<h2>Operaciones Matemáticas</h2>
<form action="javascript:ejecutarAjax();" method="post">

Número 1:&nbsp;&nbsp; <input type="text" id="numero1" name="numero1" /><br /><br />

Número 2:&nbsp;&nbsp; <input type="text" id="numero2" name="numero2"/><br /><br />

Operación
<select name="operacion" id="operacion">
<option value="suma">Suma</option>
<option value="resta">Resta</option>
<option value="multiplicacion">Multiplicación</option>
<option value="division">Division</option>
</select>&nbsp;&nbsp;
<input type="button" name="calcular" value="Calcular" onclick="javascript:ejecutarAjax();"/>
</form><br />
<div id="resultado" style="color: #CC0033"></div>
</center>
</body>
</html>





operaciones.php

<?php
$num1 = $_POST["numero1"];
$num2 = $_POST["numero2"];
$oper = $_POST["Operacion"];

$respuesta=0;

switch($oper)

{
case "suma":
$respuesta = $num1 + $num2;
break;
case "resta":
$respuesta = $num1 - $num2;
break;
case "multiplicacion":
$respuesta = $num1 * $num2;
break;
case "division":
$respuesta = $num1 / $num2;
break;
}
echo $respuesta;
?>



Quiero enviar los datos por el método POST, y al hacer clic solo muestra el valor por defecto que puse en la variable respuesta.
  #2 (permalink)  
Antiguo 14/01/2011, 16:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Envio de Datos por ajax

Hola:

Revisa los nombres de las variables, al menos veo que declaras &"o"peracion y recibes "O"peracion

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: ajax, envio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:20.