Como saber si un formulario se ha enviado

Iniciado por Shell Root, 17 Marzo 2011, 05:46 AM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

Tengo 2 archivos, index.php y registrarse.php. Cuando paso de index a registrarse, el formulario de registrarse aun no ha interactuado. Como hago para saberlo, es como una validad que quiero hacer.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

#1
no te entiendo mucho pero Puedes utilizar una variable oculta "hidden" por ejemplo:
Código (php) [Seleccionar]
<input name="nombre" type="hidden" id="nombre" value="cargada">
y en la página que espera el form miras si dicha variable va cargada,

Código (php) [Seleccionar]


if ($_POST["nombre"]!="") {
  echo "campo vacio";
  exit();
}  


o bien lo puedes hacer con jquery de la siguiente forma
la idea es tener dos campos en mi caso ok uno que se llame sessiones y otro que se llame nombre como se ve aki

index.php
Código (php) [Seleccionar]

<html>
<head>
<title>Problema</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="funciones.js"></script>
</head>
<body>
<form id="signupform" name="formulario"  method="post" action="insercita.php" >
 <body>
 <p>sessiones:

   <input name="sesiones" type="text" id="sesiones" size="5" class="required" />
 </p>
 <p>nombre:
   <input type="text" name="nombre" id="nombre">
 </p>
 <label>
 <input type="submit" name="button" id="button" value="Enviar">
</label>
</form>
<div id="resultado">-----</div>
</body>
</html>



bueno antes que nada necesitas la libreria de jquery okas , de ahi  generarmos nuestro script llamado funciones que contendra lo siguiente

funciones.js
Código (javascript) [Seleccionar]


var x;
x=$(document);
x.ready(inicializarEventos);
function inicializarEventos()
{
var x;


x=$("#sesiones");//ide de la caja de texto que se llama sessiones
x.blur(presionSubmit); //blur _indica posicionamiento del cursor en la caja de texto
x.keyup(presionSubmit);// key up : si ha perdido el cursor la caja de texto

}


//totales

function presionSubmit()
{
 
 var se=$("#sesiones").attr("value");
 var nom=$("#nombre").attr("value");

 $.getJSON("pagina1.php",{sesiones:se,nombre:nom},llegadaDatos); //utilizamos el metodo getson de jquery para enviar en tiempo real nuestras variables en este caso lo estoy enviando a una pagina que se llama pagina1.php pero en tu caso seria resgitrarse.php
 return false;
}


///*******************************FUNCIONES PARA IMPRIMIR

//totales
function llegadaDatos(datos)
{
$("#resultado").html(""+datos.sesion);

}




y nuestro ultimo codigo seria  la pagina que recibe los datos en este caso pagina1.php

Código (php) [Seleccionar]

<?php
$sesiones
=$_REQUEST['sesiones'];
$nombre=$_REQUEST['nombre'];

if(
$nombre==NULL)
{
echo 
"{'sesion':'NO se ha enviado ni un valor aun'}";
}
?>





ok bueno la idea es que por ejempolo si se pocisiona el cursor dentro de la caja sessiones y se rellena al momento de estar escribiendo mandara un mensaje en tiempo real indicando que aun no se reciben datos por parte de la caja llamada nombre de lo contrario si primero posicionas el cursor en la caja nombre y llenas el campo de texto y luego te pasas ala caja llamada sesiones nunca aparecera un mensaje ya que la caja de texto llamada nombre ya tiene un valor  y ya por ultimo pulsas el boton de enviar y tan tan.



Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Nakp

mas simple... inicia una sesion (php) cuando envia carga registrarse.php por primera vez :P si no existe es porque todavia no ha ingresado a ese archivo :) deberias exponer mejor tu caso :P creo que puede optimizarse (intentos de registro talvez?)
Ojo por ojo, y el mundo acabará ciego.

Castg!

Yo no te entiendo. Tenes un formulario en index.php con "action=registrarse.php" ? Qué es bien lo que querés que aparezca?
Tal vez usando ajax desde el index, envias el formulario a registrarse.php y si se ejecuta todo correcto imprimís algo especial en registrarse.php y lo comprobas con el response del ajax si no me equivoco...

Shell Root

No no no, a lo que me refiero es como saber que un formulario fue enviado, es decir, que ha clickeado en el boton submit del formulario. Se que es posible saberlo, pero coño no recuerdo y no se como buscarlo.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.


Shell Root

Nop!, debe de ser con alguna variable submit yo que sé. *****, no recuerdo cual era el código.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Castg!

Cómo alguna variable submit?
Querrás decir desde javascript?
Código (javascript) [Seleccionar]
document.form.submit=function(){ };
Creo que es así. No te entiendo nada! Vos lo que querés es saber si el formulario se envió? O sea, yo estoy en registrar, y cuando envie el formulario de registrar pase algo? o que ese algo pase en index?

Shell Root

Lo que quiero es que se ejecute mi codigo despues de que sea enviado el formulario, no cuando se cargue el formulario.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Spider-Net

Pues simplemente comprueba que algunos campos del formulario estén llenos, por ejemplo:

Si tu formulario tiene algo así:

Código (html4strict) [Seleccionar]
<form action="registrar.php" method="POST">
    <input type="text" name="nombre" />
    <input type="text" name="edad" />
   ....
</form>


Si quieres que tu archivo registrar.php sólo haga X cosa si el formulario ha sido enviado compruébalo así:

Código (php) [Seleccionar]
<?php
     
if(!empty($_POST['nombre']) && !empty($_POST['edad'])){
         
// ...... Y aqui pones el codigo que solo se ejecutaria si se rellena el formulario.....
     
}
?>