Afficher un message en fonction du champ utilisé...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher un message en fonction du champ utilisé...

par Xvider » 27 févr. 2008, 14:08

oui je faisais juste une modif à son post.

Effectivement pour aller plus en avant, il y a effectivement d'autre chose à mettre en place "certainement".

par Ryle » 27 févr. 2008, 14:03

@Xvider : tu compares le résultat du isSet() à une chaine vide, ça n'a pas un grand intérêt, manque un petit quelque chose à mon avis ;)

@albius : lorsque tu soumets un formulaire, tous les champs sont envoyés à l'exception des case à cocher et des boutons radios qui ne sont pas sélectionnées. Il est donc normal de toujours retrouver tes select dans $_POST.

Le mieux est donc de donner une valeur vide (ou bidon, genre -1) à tes balises options "Sélectionner ... " et de tester non seulement si le champ est bien défini avec isSet() mais également de comparer la valeur contenue à une chaine vide ou à -1 selon ce pour quoi tu optes.

A noter que la fonction empty() permet de tester à la fois l'existance et le contenu d'une variable.

par Xvider » 27 févr. 2008, 13:02

Et si tu fait comme ceci

parce que là tu verifie uniquement si ton champ est pésent et biensur c'est la cas donc il vaux mieu verifier si il a une valeur.

Code : Tout sélectionner

if (isset($_POST['Bassin']) !=""){ echo 'premier message'; } if (isset($_POST['CodePostal'])!=""){ echo 'deuxième message'; }

Afficher un message en fonction du champ utilisé...

par albius » 27 févr. 2008, 12:49

Bonjour,

Je cherche à afficher un message selon le champ du formulaire utilisé. Le "souci" en question est que le formulaire contient deux champs et me renvoie les deux variables inhérentes à ces champs. Et malgré mes tests sur chacune de ces variables, les deux messages sont systématiquement affichés si le deuxième champ est employé...
Test:
if ($_POST['Bassin']){
echo 'premier message';
}
if ($_POST['CodePostal']){
echo 'deuxième message';
}
Le formulaire:
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table border="0" cellspacing="5">
  ...
        <select name="Bassin" id="BassinEmploi">
		<option selected="selected">S&eacute;lectionner le bassin</option>
		<?php while($data = mysql_fetch_array($requete)) { 
		echo '<option value="'.$data['IDBassin'].'">'.$data['Bassin'].'</option>';} ?>
        </select></td>
  </tr>
    ...
      <td bgcolor="#CBE3EF"><select name="CodePostal" id="CodePostal">
        <option selected="selected">S&eacute;lectionner le code postal</option>
	  <?php while($data = mysql_fetch_array($requete1)) { 
	  echo '<option value="'.$data['IDCodePostal'].'">'.$data['CodePostal'].'</option>';}?>
      </select></td>
    ...
      <td bgcolor="#CBE3EF"><input type="submit" name="Submit" value="Afficher" /> </td>
    </tr>
merci,