2010-03-20 4 views
2

Je veux exécuter un bloc particulier de PHP si l'utilisateur soumet un formulaire. Il fonctionne si j'utilise un bouton d'envoi avec le nom = « submit » et:

<?php 
if(isset($_POST['submit'])) { 
code to run 
} 
?> 

Je ne sais rien au sujet de javascript, et je veux que le code à exécuter si l'utilisateur change un menu déroulant. Si je fais la première ligne de la liste déroulante

<select name="dropdownname" onchange="this.form.submit()"> 

la forme apparaît (je ne l'ai pas testé) à soumettre si l'utilisateur change le choix de menu déroulant. Cependant, si je fais cela, le code PHP if (isset ($ _ POST ['submit'])) ne fonctionne pas. Y a-t-il une instruction PHP if que je peux écrire qui répondra au formulaire soumis même s'il est soumis par un changement dans la liste déroulante et non par un bouton de soumission?

Répondre

6

Vous pouvez consulter directement:

if(isset($_POST['dropdownname'])) 
+0

Bien sûr! Cela a un sens total (et fonctionne). Je vous remercie! – bsamek

-1

vous devriez toujours vérifier $ _SERVER [ « REQUEST_METHOD »] au lieu du nom de domaine particulier

+1

Non, vous devriez toujours vérifier l'existence de tous les champs que vous prévoyez de recevoir, ou au moins ceux que votre code * nécessite *. La simple vérification de la méthode de requête ne vous dit rien sur les données que vous êtes en train de transmettre. – Atli

+0

@Atli Donc, personne ne vous a demandé à propos des données que vous êtes passé –

+0

@Col. Shrapnel - Il a demandé que le code soit exécuté si la liste déroulante est modifiée. Si vous vérifiez seulement la méthode de demande, n'importe quelle demande de POST déclencherait le code, même un d'un autre formulaire. - Vérifier que la valeur est présente est le seul moyen de garantir que le '