Ver Mensaje Individual
  #16 (permalink)  
Antiguo 21/12/2010, 03:14
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Enviar petición y mientras mostrar "mensaje"

Muchas gracias, funcionó perfecto, utilice el ejemplo de Sourcegeek

Cuando se pulsa el botón enviar, me gustaría que se enviaran los datos del formulario, esto creo que lo he conseguido con el serialize();

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $('#form').submit(function(event) {
  3.      var datos = $(this).serialize();  
  4.       event.preventDefault()
  5.       $.ajax(
  6.         {
  7.             url:'procesa.php',
  8.             type:'POST',
  9.             data:datos,
  10.             beforeSend:function(objeto){
  11.                 $('#carga').css({display:'block'});
  12.             },
  13.             complete:function(){$('#carga').css('display','none');}
  14.         });
  15.     });
  16. });

Pero me gustaría que si envío los datos al script procesa.php y éste crea alguna sesion o algo, la página del formulario se entere, es la gracia del asunto... si todo lo que envío luego no hay forma de retornar la respuesta a la pagina origen no me sirve, y se debe poder incluso sesiones no?

Ahora mismo tengo lo siguiente

formulario

Código HTML:
Ver original
  1. <?php session_start(); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  6. <script type="text/javascript">
  7. $(document).ready(function() {
  8.     $('#form').submit(function(event) {
  9.      var datos = $(this).serialize();  
  10.       event.preventDefault()
  11.       $.ajax(
  12.         {
  13.             url:'procesa.php',
  14.             type:'POST',
  15.             data:datos,
  16.             beforeSend:function(objeto){
  17.                 $('#carga').css({display:'block'});
  18.             },
  19.             complete:function(){$('#carga').css('display','none');}
  20.         });
  21.     });
  22. });
  23. </head>
  24. <div id="formulario">
  25.     <form method="post" id="form" action="procesa.php">
  26.         <fieldset>
  27.             <legend>Registrarse</legend>
  28.             <div class="medidas">
  29.                 <label for="user">Usuario:</label>
  30.                 <input id="user" name="user">
  31.             </div>
  32.             <div class="medidas">
  33.                 <label for="pass">Contraseña:</label>
  34.                 <input type="password" id="pass" name="pass">
  35.             </div>
  36.             <div class="check">
  37.                 <input type="checkbox" id="remember" name="remember">
  38.                 <label for="recordar">Recordar mi nombre de usuario</label>
  39.             </div>
  40.         </fieldset>
  41.         <div>
  42.         <input type="submit" value="Enviar" />
  43.         </div>
  44.     </form>
  45. </div>
  46. <div id="carga" style="display:none">
  47.     <img src="cargando.gif" />
  48. </div>
  49. <?php
  50. if ($_SESSION["correcto"]){
  51.     echo "SESION RECIBIDA";
  52. }else{
  53.     echo "NINGUNA RECIBIDA";
  54. }
  55. ?>
  56.  
  57. </body>
  58. </html>

procesa.php

Código PHP:
Ver original
  1. <?php
  2. /* Recibe la respuesta del formulario
  3. Hace lo tenga que hacer y devuelve una respuesta al formulario que puede ser
  4. Se ha creado una sesión.
  5. */
  6. print_r($_POST);
  7. sleep(5);
  8. if ($_POST['user']=='dani'){
  9.     $_SESSION["correcto"] = true;
  10. }
  11. ?>

Cómo puedo hacer para enviarle las sesiones que cree en el script remoto? porque tal y como está ahora la pag. del formulario no se entera, es como si para enterarse tuviera que recargar la página sino no se entera...

Muchas gracias