Que tal, he notado que en lo ejemplos siempre usan dos o tres archivos, ya sean un JS, PHP y HTML, trate de hacer un ejemplo en donde estuviera todo junto en un JSP péro me da un error, me duplica un campo de texto y un boton, no entiendo por que, es necesario usar el AJAX por separado de la forma que extrae los datos? el código es el siguiente...de antemano muchas gracias! (olvide mencionar, es un JSP...)
Código HTML:
<HTML>
<HEAD>
<TITLE>Pagina 1</TITLE>
<Script>
var ajax;
var b=0;
function funcionCallback()
{ b++;
// Comprobamos si la peticion se ha completado (estado 4)
if( ajax.readyState == 4 )
{
// Comprobamos si la respuesta ha sido correcta (resultado HTTP 200)
if( ajax.status == 200 )
{
// Escribimos el resultado en la pagina HTML mediante DHTML
document.all.salida.innerHTML = "<b>"+ajax.responseText+"</b>";
}
}alert('b :'+b);
}
var a=0;
function recuperaResidencia()
{ a++;
// Creamos el control XMLHttpRequest segun el navegador en el que estemos
if( window.XMLHttpRequest )
ajax = new XMLHttpRequest(); // No Internet Explorer
else
ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer
// Almacenamos en el control al funcion que se invocara cuando la peticion
// cambie de estado
ajax.onreadystatechange = funcionCallback;
// Enviamos la peticion
ajax.open( "GET", "pagina1.jsp?persona="+document.all.entrada.value, true );
ajax.send( "" );
alert('a :'+a);
}
</Script>
<BODY OnLoad="">
<%
// Obtener el parametro con el nombre de la persona
String persona = (request.getParameter("persona")==null)?"":request.getParameter("persona");
// Devolver el lugar de residencia de la persona
if( persona.equalsIgnoreCase("Josue") )
{
out.print("GUADALAJARA");
}
else
if( persona.equalsIgnoreCase("Fulano de tal") )
{
out.print("PINTO");
}
else
if( persona.equalsIgnoreCase("Fulano de cual") )
{
out.print("VALDEMORO");
}
else
{
out.print("PERSONA DESCONOCIDA");
}
%>
<br/>
<br/>
<input type="text" id="entrada" size="77"/>
<input type="button" value="Consultar" onclick="recuperaResidencia()"/>
<br/>
<br/>
Lugar de residencia: <span id="salida"></span>
<br/>
<br/>
</BODY>
</HTML>