Hola,
Es algo raro. Tengo un formulario. Cuando hago onsubmit, se llama una función javascript, espera 3 segundos y, al terminar, hace el form.submit() (lo que vendría a ser, hacer el action del formulario).
El problema es que el php que recibe el formulario, no me procesa los datos :(
Os pongo el código a ver si veis qué falla.
El formulario html:
Código:
<div style="height: 25px;">
<div id="resultado">Insertando... <img src=./IMG/ajax-loader.gif></div>
</div>
<form name="formlogin" id="formlogin" action="conPhpAjax.php" method="post" class="form" onsubmit="return prova();" >
<label for="usdni">DNI </label>
<div class="div_texbox">
<input class="username" name="usdni" type="text" class="usdni" id="usdni" />
</div>
El código JS:
Código:
function prova(){
document.getElementById("resultado").style.display = 'block';
setTimeout("nova()", 3000);
return false;
}
function nova(){
document.forms["formlogin"].submit();
}
Y la página donde está puesto el action del formulario:
Código:
<?php
include('functions.php');
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
echo "variables: ";
echo $HTTP_POST_VARS["usdni"] ;
echo $_POST['udni'];
echo "FIN variables: ";
?>
La idea es simular un retardo de tiempo a la hora de mandar el formulario (de manera que un campo que estaba ocultado [resultado] se muestre [tal como hace el javascript] aunque en realidad sea instantáneo). Una vez han pasado 3 segundos (simulando con un gif, como he dicho, que se procesan los datos), quiero que se llame el submit del formulario (el action vaya) y me haga el echo de las variables del formulario... Pero no lo hace. No las recibe :(
La idea es que al final, en lugar del echo de las variables se haga un insert a una base de datos. Lo ideal sería que la página del action no se viera, sólo se ejecutara y después se viera otra página distinta (por ejemplo, consultar los datos introducidos).
Me podeis ayudar/replantear la situación? Ando algo perdido...
Gracias