Buenas, llevo unos pocos dias interesado en las posibilidades que ofrece AJAX, trás probar algunos ejemplos puramente didácticos me propuse hacer un sistema de logueo de usuarios para mi blog, usando AJAX con PHP.
Pero tengo algo que me trae de cabeza desde hace un par de dias...veamos:
index.php:
Contiene un include del tipo JS (<SCRIPT SRC=...>) de "ajax.js"
Contiene un include de login.php donde ira el panel de login
Contiene un <div id="loginmodulo"></div>
login.php:
Contiene las funciones phpFormulario_login, phpAutentificar, phpFormulario_registrar, phpPerfil etc...
Contiene un switch que lee las variables GET ejecutando una función u otra.
ajax.js
Contiene las funciones que conectan con "login.php" y una función que escribe las respuestas dentro de <div id="loginmodulo"></div>
Veamos un caso práctico antes de liaros demasiado:
1. El usuario entra en la página "index.php"
2. "index.php" enlaza con "login.php"
3. "login.php" ve que no hay variables GET, y por defecto ejecuta phpFormulario_login
4. Aparece el formulario de login en "index.php"
5. El usuario ingresa los datos y clicka el Submit
6. Este Submit a través de onClick ejecuta ajaxVerificar, que se encuentra en "ajax.js" (recordad que en el index.php hay un include de "ajax.js")
7. ajaxVerificar conecta con el servidor, concretamente la funcion phpAutentificar de login.php
8. Esta devuelve 0 ya que todo ha ido bien
9. ajaxVerificar recoge este 0, todo a ido bien, y conecta con la funcion phpPerfil de "login.php"
10. phpPerfil (que contiene un echo 'Bienvenido $_SESSION[user] !";), devuelve esto a ajaxVerificar
11. ajaxVerificar lo recoge y lo envia a ajaxImprimir
12. ajaxImprimir imprime esta respuesta en el <div id="modulologin"></div> de index.php
13. "Bienvenido ....." aparece en el "index.php".
Bueno si habeis tenido el coraje de leer y intentar entender todo esto, nadamás quiero haceros un par de preguntas:
- La primera vez que se ejecutara "login.php", no se haria a través de ajax, por lo que tendria que encontrar alguna manera de que aún así el echo que imprime el formulario de login, se imprimiera dentro del <div id="modulologin"></div>.
- La funcion ajaxImprime, no funciona correctamente, me parece que al estar en "ajax.js", no encuentra el div que esta en el index.
Es intelligente hacer todo esto vía AJAX ? O es preferible usar AJAX tánsolo para detalles o cosas más simples...
Muchas gracias, espero no haberos aburrido demasiado
Saludos !