AJAX - Problemas PHP, AJAX y XHTML

 
Vista:

Problemas PHP, AJAX y XHTML

Publicado por José Carlos (2 intervenciones) el 01/02/2007 12:11:28
Hola buenos días.

Estoy realizando una web XHTML con AJAX. Esta página también tiene código PHP. El problema es el siguiente: Tengo un formulario realizado en PHP. Este formulario envia los datos a través de AJAX a otra función PHP que procesará los datos. Envío el formulario con el método GET de AJAX pero cuando paso la URL con los ampersand codificados (&) -esto es para que me pase el test de validación en XHTML- luego no puedo recuperar las variables en la función PHP mediante $_GET. Si no codifico los ampersand (&) puedo recuperarlo perfectamente en la función PHP con $_GET pero claro, así no pasaría la validación del XHTML.
No se si me he explicado correctamente. Espero que puedan ayudarme. Muchas gracias.
Este es el código para que quede más claro e incluyo comentarios al principio de cada una de las funciones que son tres:

//Función PHP. Muestro formulario para loguearse. Esta función envía los datos a la función Javascript/Ajax cargarContenido.

function login()
{
echo "<form onSubmit=\"cargarContenido('verifica_login'); return false\">
Nombre de usuario:<input type=\"text\" name=\"username\" id=\"username\" />
Contraseña:</label><input type=\"text\" name=\"pass\" id=\"pass\" />
<input type=\"submit\" name=\"Submit\" value=\"Enviar\" />
</form>";
}

//Funcion Javascript/Ajax cargarContenido. Dependiendo del parametro mandará los datos a un sito u a otro

function cargarContenido(op){
var contenedor;
//contenido es el div que cargará todos los contenidos de la página.
contenido = document.getElementById('contenedor');
ajax=nuevoAjax();

switch(op)
{
case "verifica_login":
username = document.getElementById('username').value;
pass = document.getElementById('pass').value; url="contenido.php?op=verifica_login&username="+username+"&pass="+pass;
ajax.open("GET", url,true);
}

ajax.onreadystatechange=function()
{
if (ajax.readyState==4) {
contenido.innerHTML = ajax.responseText;
}
}
ajax.send(null)
}

//Función PHP. Verifica los datos del login. De primeras quiero mostrar los datos para ver si llegan correctamente. Hasta aquí llega perfectamente pero $_GET['username'] y $_GET['pass'] no contiene nada o al menos no lo muestra.

function verifica_login()
{
echo "Nombre de usuario: ".$_GET['username']."<br />";
echo "Contraseña: ".$_GET['pass'];
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas PHP, AJAX y XHTML

Publicado por José Carlos Reyes (2 intervenciones) el 01/02/2007 12:17:33
Soy yo de nuevo. Vaya faena. No me había dado cuenta pero la web, evidentemente, codifica los ampersand correctamente. Quería decir que yo tengo los ampersand codificados así (& amp ;) sin espacios claro está, y no como &
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar