Formulaire html, utiliser le type SELECT

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 : Formulaire html, utiliser le type SELECT

utilisation de javascript avant submit du formulaire?

par wzcocoon » 16 janv. 2008, 09:38

a tu penser a l'option de vérifier ton formulaire avant de l'envoyer?

Code : Tout sélectionner

<script language="Javascript" type="text/javascript"> function checkForm(){ valid = true; if (document.form.whatever.value == "-1") { alert ("ta pas selecter ...."); valid = false; } return valid; } </script>
j'utilise la valeur -1 pour les select

Code : Tout sélectionner

<form action="envoi.php" method="post" name="form" onsubmit="return checkForm();"> ... <select name="whatever" size="1"> <option value="-1">Choisissez ...</option> <option value="sequetuveut">sequetuveut</option> </select> ... </form>
si la personne ne choisi pas la valeur et -1 donc elle reçoit une alerte et le formulaire n'est pas envoyer.

par Ryle » 15 janv. 2008, 17:37

Alors déjà, il faut savoir qu'il n'y a pas d'attribut value dans la balise select. La valeur d'un champ de type "select" est celle de la balise "option" qui a été sélectionné. Par défaut, c'est toujours la première option de la liste qui est sélectionné. Si tu veux sélectionner une autre option, il te faut ajouter l'attribut "selected" dans l'option désirée. En gros il te faut tester si la valeur de l'option correspond à celle que tu as dans $_POST["nombrepers"] pour savoir s'il te faut ajouter ou nom le mot clé "selected" dans la balise option.

Quelque chose dans ce gout là.
<OPTION VALUE="1pers" <?php 
        if (!empty($_POST["nombrepers"]) && $_POST["nombrepers"]=="1pers") { 
                echo "selected"; 
        } 
        ?>>1</OPTION> 

Formulaire html, utiliser le type SELECT

par chodaboy34 » 15 janv. 2008, 17:27

Bonjour,

J'utilise un formulaire php qui renvoie des informations texte vers une adresse email à l'aide de la fonction mail de php.

Voilà à quoi ressemble une zone de saisie normale :
        <p><label for="telbureau"><font color="#000000"><b>Tél (bureau) : </b><i>Work Phone :</i></font></label>
        <input type="text" size="15" name="telbureau" id="telbureau" value="<?php
        if (!empty($_POST["telbureau"])) {
// Saisi tel bureau
                echo htmlspecialchars($_POST["telbureau"],ENT_QUOTES);
        }
        ?>" />
        </p>
Voilà le code php qui envoie le mail :
<?php


}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
        $entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
        $entete .= "MIME-Version: 1.0";
        $nom_prenom = $_POST["nom"].' '.$_POST["prenom"].' '.$_POST["societe"].' '.$_POST["nombrepers"];

        if (mail($email_webmaster,$_POST["titre"],$nom_prenom,$_POST["message"],$entete)) {
// mail envoyé
                echo "Votre message a ete envoye.<br />\n";
                echo "<a href=http://hotel-ulysse.fr><font color=\"#000000\">Retour a la page d'accueil</font></a>\n";
        }
        else {
// erreur lors de l'envoi du mail
                echo "Un problème s'est produit lors de l'envoi du message.\n";
                echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
        }
}
?>
Tant que j'utilise la balise html input type=text, les informations sont bien envoyées. Maintenant, pour que le formulaire soit plus facile à remplir, je souhaite utiliser le type SELECT. Voilà ce que j'ai inscrit :
<SELECT name="nbpers"  id="nombrepers" value="<?php
        if (!empty($_POST["nombrepers"])) {
// Saisi nb personnes
                echo htmlspecialchars($_POST["nombrepers"],ENT_QUOTES);
        }
        ?>" />>
		<OPTION VALUE="1pers">1</OPTION>
		<OPTION VALUE="2pers">2</OPTION>
		<OPTION VALUE="3pers">3</OPTION>
		<OPTION VALUE="4pers">4</OPTION>
		
</SELECT>
Lors de la saisie, l'OPTION VALUE apparaît bien, mais dans le mail que je reçois je ne retrouve pas l'OPTION VALUE qui a été saisie.

Est-il possible de passer des informations avec la balise SELECT ?

Si cela est possible, je ne dois pas prendre le probléme dans le bon sens :D