2010-05-23 6 views
5

J'ai ce bouton classique soumettre qui soumet un formulaire comme celui-ci:Comment vérifier si un formulaire est soumis via javascript?

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

Et je vérifie si le bouton est utilisé en utilisant ceci:

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

Maintenant, j'ai un lien soumettre en utilisant jquery:

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

Code JS:

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

Quelle est la manière alternative ici d'être utilisé ici pour if(isset($_POST['Submit'])) puisque je soumets le formulaire en utilisant javascript?

+0

Soumettez-vous via AJAX/un plugin, ou vous voulez savoir '.submit()' a été invoqué? Si vous soumettez le formulaire via javascript, le bouton qui serait autrement présent ne figurera pas dans les données publiées. –

+0

Je travaille sur une application facebook, et j'appelle un popup FB avant d'invoquer le .submit(), merci pour l'aide de tout le monde, Sarfraz a résolu le problème. L'entrée cachée est néanmoins un bon choix :) – SteD

Répondre

5

Si je vous comprends bien, essayez ceci:

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

+1 Nice and simple. –

+0

Merci l'homme! c'est juste ce dont j'ai besoin. – SteD

+0

@SteD: Vous êtes les bienvenus :) – Sarfraz

0

La meilleure solution est "Ne fais pas ça". Si vous souhaitez soumettre un formulaire, utilisez un bouton de soumission (ne le faites pas comme un effet secondaire en cliquant sur un lien hypertexte vers le haut de la page). Tout JavaScript que vous souhaitez exécuter peut ensuite être traité dans l'événement submit du formulaire.

Si vous voulez vraiment le faire en tant qu'effet secondaire, vérifiez l'existence de tout autre champ dont vous savez qu'il sera défini. Vous pouvez ajouter un champ caché pour vous assurer qu'il y aura une combinaison nom/valeur donnée si vous le souhaitez.

1

Si j'ai bien compris votre problème, vous pouvez simplement changer le type d'entrée à caché.

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

La variable $ _POST ['Submit'] sera définie.

4

Vous devez ajouter une entrée cachée <input type="hidden" name="formsubmit" value="yes" /> à la forme qui sera toujours obtenir soumis, et vérifier qu'au lieu du bouton (qui obtient seulement soumis si elle est cliqué sur ..)

Questions connexes