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:
El código JS:<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>
Código:
Y la página donde está puesto el action del formulario:function prova(){ document.getElementById("resultado").style.display = 'block'; setTimeout("nova()", 3000); return false; } function nova(){ document.forms["formlogin"].submit(); }
Código:
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 :(<?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 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