Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: xustyx en 14 Noviembre 2011, 02:15 am



Título: Ejecutar un php y seguir navegando.
Publicado por: xustyx en 14 Noviembre 2011, 02:15 am
Buenas a todos!!

Llevo varios días en un pequeño proyecto y, poco a poco, va tomando forma.

Ahora mismo estoy buscando una manera de ejecutar un codigo php y de mientras seguir navegando por la web, me refiero a que, al enviar un post, el browser se queda pensando hasta que el servidor realiza la acción, pero a mí me interesa que al enviar el post se pueda seguir navegando.

Si no me habéis entendido, imaginar un php que tiene que copiar y calcular 40000 operaciones, nosotros damos click al form, empieza eso, y ha esperar...

Se me habían ocurrido unas cuantas maneras, pero no me funcionan.
Una era, ponerle un header("Location: blahblahblabh"); pero no redirecciona hasta que termina.

Otra era, en el form, dirigirme a un php con un header("Location: blablalblalbalabl"); y que a su vez ejecutara el otro php... Pero nada.

Así, que lo único que me queda es esperar a que me digáis la palabra AJAX que supongo que será de ese modo. XD

Bueno al fin y al cabo, quiero realizar una página, que mientras este el codigo php en ejecución muestre algo típico como: Cargando, Nº de petición $num, Tiempo restante aprox: $tm.

Un saludo a tod@s!!


Título: Re: Ejecutar un php y seguir navegando.
Publicado por: Lunfardo en 14 Noviembre 2011, 02:31 am
para que haces un thread donde respondes tu propia pregunta?


Título: Re: Ejecutar un php y seguir navegando.
Publicado por: #!drvy en 14 Noviembre 2011, 02:32 am
 :xD

Efectivamente, AJAX.


Saludos


Título: Re: Ejecutar un php y seguir navegando.
Publicado por: xustyx en 14 Noviembre 2011, 03:14 am
MMM si me podeis echar un cable... más o menos eso como va?¿?

El archivo php, a la vez que trabaja, copia por ejemplo la variable del bucle en otro archivo, mientras ajax lee ese archivo y le pasa la variable a javascript y cada X tiempo la actualiza??? O como es eso ... XDDD

Si teneis algo de code, donde pueda leer lo más sencillo de lo sencillo, se agradece.


Título: Re: Ejecutar un php y seguir navegando.
Publicado por: #!drvy en 14 Noviembre 2011, 14:20 pm
Bueno yo para empezar te recomendaría jQuery. Es muy facil de usar y con 6 lineas (literalmente) haces una peticion get o post y devuelves el contenido.

Si quieres hacer la pagina multi-tarea (hacer 2 o mas cosas a la vez), creo yo, que vas a tener que hacerla entera bajo ajax, vamos que cualquier cosa se mueva gracias a eso.

Citar
El archivo php, a la vez que trabaja, copia por ejemplo la variable del bucle en otro archivo, mientras ajax lee ese archivo y le pasa la variable a javascript y cada X tiempo la actualiza??? O como es eso ... XDDD

Si y no xD
Veras lo que haces tu es mandar la petición a un archivo php, y este se procesa al mismo tiempo al que la mandas (sin tener que recargar ni nada).. es como si la cargase en un iframe y luego te devuelve la respuesta del archivo.

Te pongo un ejemplo.

archivo.php
Código
  1. <?php
  2. // aqui todo la ***** que tiene que procesar
  3. // por ejemplo xD
  4. if(isset($_GET['nombre'])){echo $_GET['nombre'].', eres un pollo robot!!!!';}
  5. ?>
  6.  

archivo.html (con jquery)
Código
  1. <html>
  2. <head>
  3. <title>oseaaa helloooo</title>
  4. <script src="http://code.jquery.com/jquery-1.7.min.js"></script>
  5. <script>
  6. $(document).ready(function() {
  7. $('#botoncarga').click(function() {
  8. $.get("archivo.php", { nombre: $('#nombre').val() }, function(data){
  9. alert(data);
  10. });
  11. });
  12. });
  13. </script>
  14. </head>
  15. <body>
  16. <div>
  17. <label>Nombre</label>
  18. <input type="text" id="nombre" />
  19. <input type="button" id="botoncarga" value="Que soy" />
  20. </div>
  21. </body>
  22. </html>

Esto lo que hace es procesar el "archivo.php", enviarle el paramentro get "nombre" y devolver la respuesta.

Lo que quieres tu se podria adaptar perfectamente y es bastante sencillo.
Te dejo unos enlaces.

  • jQuery - Tutorial (http://docs.jquery.com/Main_Page)
  • jQuery - GET (http://api.jquery.com/jQuery.get/)
  • jQuery - Post (http://api.jquery.com/jQuery.post/)

Si necesitas mas cosas, solo pide xD


Saludos


Título: Re: Ejecutar un php y seguir navegando.
Publicado por: xustyx en 17 Noviembre 2011, 02:54 am
Muchas gracias, perdon por tardar tanto en dártelas, pero, he estado muy liado :P