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$(document).ready(function() {
$('#form').submit(function(event) {
var datos = $(this).serialize();
event.preventDefault()
$.ajax(
{
url:'procesa.php',
type:'POST',
data:datos,
beforeSend:function(objeto){
$('#carga').css({display:'block'});
},
complete:function(){$('#carga').css('display','none');}
});
});
});
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<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() {
$('#form').submit(function(event) {
var datos = $(this).serialize();
event.preventDefault()
$.ajax(
{
url:'procesa.php',
type:'POST',
data:datos,
beforeSend:function(objeto){
$('#carga').css({display:'block'});
},
complete:function(){$('#carga').css('display','none');}
});
});
});
<form method="post" id="form" action="procesa.php"> <input id="user" name="user"> <input type="password" id="pass" name="pass"> <input type="checkbox" id="remember" name="remember"> <label for="recordar">Recordar mi nombre de usuario
</label> <input type="submit" value="Enviar" /> <div id="carga" style="display:none"> <img src="cargando.gif" /> <?php
if ($_SESSION["correcto"]){
echo "SESION RECIBIDA";
}else{
echo "NINGUNA RECIBIDA";
}
?>
procesa.php
Código PHP:
Ver original<?php
/* Recibe la respuesta del formulario
Hace lo tenga que hacer y devuelve una respuesta al formulario que puede ser
Se ha creado una sesión.
*/
if ($_POST['user']=='dani'){
$_SESSION["correcto"] = true;
}
?>
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