2010-05-23 16 views
5

tengo este botón convencional de presentar la que presentar un formulario como el siguiente:¿Cómo comprobar si un formulario se envía mediante javascript?

<form method="post" id="form_submit"> 
... 
<input class="button" type="submit" name="Submit" value="Submit"> 
</form> 

Y puedo comprobar si se hace clic en el botón de envío usando la siguiente:

if(isset($_POST['Submit'])){ 
    //update DB 
} 

Ahora tengo una Agregar enlace utilizando jQuery: código

<a href="#" onclick="publish(); return false;">Submit</a> 

JS:

$("#form_submit").submit(); 

¿Cuál es la manera alternativa aquí para ser utilizado aquí para if(isset($_POST['Submit'])) ya que estoy enviando el formulario usando javascript?

+0

¿Está sometiendo a través AJAX/algún plugin, o quieres saber '.submit()' fue invocado? Si envía el formulario a través de javascript, el botón que de lo contrario estaría presente, no estará en los datos publicados. –

+0

Estoy trabajando en una aplicación de Facebook, y estoy llamando a una ventana emergente de FB antes de invocar el .submit(), gracias por la ayuda de todos, Sarfraz resolvió el problema correctamente. La entrada oculta es una buena opción, no obstante :) – SteD

Respuesta

5

Si he entendido bien, intente esto:

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
// your code......... 
} 
+0

+1 Agradable y simple. –

+0

Gracias hombre! esto es justo lo que necesito. – SteD

+0

@SteD: De nada :) – Sarfraz

0

La mejor solución es "No hagas eso". Si desea enviar un formulario, utilice un botón de envío (no lo haga como efecto secundario al hacer clic en un hipervínculo en la parte superior de la página). Cualquier JavaScript que desee ejecutar se puede manejar en el evento submit del formulario.

Si realmente desea hacerlo como efecto secundario, compruebe la existencia de cualquier otro campo que sepa que se establecerá. Puede agregar un campo oculto para asegurarse de que haya una combinación de nombre/valor determinado si lo desea.

1

Si entendí correctamente su problema, simplemente puede cambiar el tipo de entrada a oculto.

<form method="post" id="form_submit"> 
... 
<input type="hidden" name="Submit"> 
</form> 

Se especificará la variable $ _POST ['Enviar'].

4

Usted debe agregar un campo oculto <input type="hidden" name="formsubmit" value="yes" /> a la forma que siempre obtener presentará, y comprobar si en lugar de que el botón (la que sólo se pone presentada si se hace clic en ..)

Cuestiones relacionadas