Ver Mensaje Individual
  #10 (permalink)  
Antiguo 27/04/2014, 12:30
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 14 años, 1 mes
Puntos: 206
Respuesta: A vueltas con el Ajax

Tienes que tener muy claro una cosa: La diferencia que hay entre un lenguaje de servidor (PHP) y un lenguage del cliente (javascript).

El lenguaje del servidor se encarga de ejecutar una tarea en el servidor, lo que le permite por ejemplo usar un abse de datos para manejar información persistente. Para los principiantes, se podría decir que el lenguaje de servidor se encarga de generar el HTML con el contenido que se le enviará al navegador del cliente.

Por otro lado está javascript, que es un lenguaje de programación esitlo script. ¿Qué significa ésto? Que es un lenguaje interpretado: Es un código en texto plano que se ejecuta en tiempo real, conforme lo va "leyendo" el navegador. Y ésa es la clave: El navegador lo ejecuta, así que javascript no tiene NADA QUE VER con el lenguaje de servidor, php en este caso, que estes utilizando. Repito. NO HAY RELACIÓN NINGUNA ENTRE JAVASCRPT y PHP.

PHP puede devolver páginas con HTML y javascript dentro, pero a PHP le da igual, par él, sólo es texto plano.

Javascript es un lenguaje del lado del cliente pensado para hacer páginas dinámicas: Un código que se ejecuta en el navegador y que puede acceder a todos los elementos HTML de la página, y eventos dispares como los del teclado, ratón, load de imágenes, etc, con el objetivo de ejecutar alguna acción interesante. Aunque ahora CSS le está quitando mucho trabajo, antes javascript se usaba para hacer menus desplegables, rollover de imágenes cuando pones el ratón encima, validaciones sencillas de formularios antes de enviarlos, etc.


Y ¿Qué es AJAX? Ajax no es más que la forma de realizar una llamada HTTP asíncrona al servidor, sin necesidad de recargar la página completamente, mediante instrucciones javascript ¿Qué quiere decir eso? Que no necesitas refrescar la página (con todas las ventajas que ello implica). Por ejemplo, estás viendo un video en youtube, y quieres darle a "me gusta". Antes tenías que recargar la página completamente tras enviar el formulario al servidor de youtube, con lo que si estabas viendo el video, te lo cortaba y tenías que empezar de nuevo cuando el navegador cargue de nuevo la página.

Con ajax y javasxcript ya no. Tu estás viendo el video, aprietas "me gusta", y javascript lanzará una llamada http al servidor enviando los datos necesarios para que youtube sepa a qué video meterle un voto positivo. El cliente ni se entera, seguirá viendo tranquilamente el video porque la llamada AJAX se hace en segundo plano, sin molestar. Cuando ésta responda, javascript puede leer lo que el servidor ha respondido, y actuar en consecuencia.

Su casos de uso son miles, el límite es tu imaginación. O la imaginación del tipo que escribió el libro que estás leyendo para aprender. Interesa que leas también sobre JSON, ya que ajax y json son muy amigos. Y JSON no es más que un formato de cadenas strings que sirve para representar casi caulqueir objeto "javascript" como si fuera una cadena. Si vienes de java, JSON sirve para "serializar" objetos. PHP tiene json_decode y json_encode que serializan objetos y arrays PHP en forma de cadenas json, y javascript tiene dos funciones JSON.stringify y JSON.parse para hacer lo mismo respectivamente.

Y ahora centrándonos en tu juego: El número aleatorio una de dos: O lo metes en sessión, en la misma página donde muestras el formulario que usas para jugar, o la metes en un campo HIDDEN del formulario, por ejemplo "solucion", asi que la página llamada por ajax comprobará si el campo "numero" es igual al campo "solucion", ambos le llegan por POST. Ésto hace que el el valor de la solucion pueda ser "vista" por el jugador que sepa usar una consola de desarrollador, pero como dices, sólo es para practicar .