Contrôler valeur liste formulaire php [Résolu]

Signaler
Messages postés
3
Date d'inscription
samedi 28 juillet 2007
Statut
Membre
Dernière intervention
30 janvier 2011
-
Messages postés
28
Date d'inscription
mercredi 10 octobre 2007
Statut
Membre
Dernière intervention
3 février 2008
-
Bonjour à toute la communautée,

J'ai récupéré sur la toile le script php d'un formulaire avec traitement des valeurs saisies dans les zones de texte.

========== formulaire.php ============




if($ref1 or $ref2 or $ref3)
{
if($ref1){
$ref1=$NOM1;
}
if($ref2){
$ref2=$PRENOM1;
}
if($ref3){
$ref3=$EMAIL1;
}
echo"onload="alert('$MERCI1 $remplir$ref$ref1$ref2$ref3$ref4$correct')"";
}
?>>
<form name="contactform" action="validform.php" method="post" enctype="multipart/form-data" onSubmit="doValidate(this);return false">

       Nom :,
        " size="50" maxlength="50">
    <? if($ref1){ echo' '.$NOMA.'';}?>,
   
    ----

    Pr&eacute;nom :,
        " size="50" maxlength="50">
    <? if($ref2){ echo' '.$PRENOMA.'';}?>
   ,
   
    ----

    E-mail :,
        " size="60" maxlength="60">
    <? if($ref3){ echo' '.$EMAILA.'';}?>
   ,
   
    ----

  

    ">
   
   

</form>

========== formulaire.php ============



Je voudrais rajouter dans mon formulaire (ci-dessus), une liste déroulante et m'assurer qu'une valeur a bien été sélectionnée lors de l'envoi de mon formulaire.
Le code ci-dessous contrôle et valide les valeurs.



========== validform.php ============
<?
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$email = $_POST["email"];



if($cookie=="1"){
if(isset($cookie)){
setcookie("name",$nom,time()+3600*24*365);
setcookie("prename",$prenom,time()+3600*24*365);



setcookie("email",$email,time()+3600*24*365);
}
else{}
}
else{
}
$alpha="abcdefghijklmnopqrstuvwyzABCDEFGHIJKLMNO
PQRSTUVWYZ";
$num="0123465789";



if(strlen($nom)<2 or ereg("([$num]){1,20}",$nom)){
$champs1="nom";
}
if(strlen($prenom)<2 or ereg("([$num]){1,20}",$prenom)){
$champs2="prenom";
}
if( strlen($email)>2 && ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.



    [mailto:'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.' '@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'].
    '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email) )
    {}
    else{
    $champs3="email";
    }



if( isset($champs1)&& $controle=="1" || isset($champs2)&& $controle=="1" || isset($champs3)&& $controle=="1"){
header("location:formulaire.php?ref1=$champs1&am
p;ref2=$champs2&ref3=$champs3");
}
else{
function file2go2($url1){ print "<html>\n<head>\n<meta http-equiv="refresh" content="0;URL=$url1">\n<link rel="stylesheet" href="style.css" type="text/css">
</head>\n</html>"; exit; }
...
?>
========== validform.php ============



Je ne sais pas comment exprimer la syntaxe dans validform.php pour contruire ma liste et vérifier qu'une valeur a bien été sélectionnée au moment de l'envoi des données.
Ne maîtrisant pas le php, si quelqu'un pouvait apporter la solution.
Merci d'avance.
Bonnes fêtes

4 réponses

Messages postés
28
Date d'inscription
mercredi 10 octobre 2007
Statut
Membre
Dernière intervention
3 février 2008

Que veux tu faire exactement ??
Pour info ce script permet de vérifier que les champs ne contiennent poas de caractères non voulu comme du numérique pour le nom et le prénom et les rentres dans les variables $champ. Il ne traite dons pas les listes.
Messages postés
3
Date d'inscription
samedi 28 juillet 2007
Statut
Membre
Dernière intervention
30 janvier 2011

Bonsoir Khzulu,

Justement, je voudrais pouvoir intégrer une liste déroulante.
Et je ne sais pas comment faire, je ne maîtrise pas du tout le PHP.
Ce n'est pas faute d'avoir cherché sur le net une solution.

Merci.
Messages postés
28
Date d'inscription
mercredi 10 octobre 2007
Statut
Membre
Dernière intervention
3 février 2008

Voilà un bout de code pris sur "le site du Zér0":
<hr size="2" width="100%" /><?php

//***************************** Création de la fonction ******************************
function choixParDefaut($couleur)
{

// On crée une variable (vide par défaut) que l'on retournera à la fin
$par_defaut = '';
// Si le visiteur a choisi une couleur
if (isset($_POST['couleur']))
{
// Si cette couleur correspond à la couleur que l'on est en train de traiter
if ($_POST['couleur'] == $couleur)
{
// Alors on modifie la variable que l'on retournera et on lui met selected
$par_defaut='selected="selected"';
}
}
//On ne retourne rien si ce n'était pas la couleur choisie, selected si c'était la bonne couleur
return $par_defaut;
}
//******************************** Fin de la fonction *******************************

?>

Quelle est votre couleur préférée ?

<!-- Formulaire simple avec une liste déroulante à 5 choix et un choix par défaut -->
<!-- La valeur 'value' de l'Option représente la valeur passé par le $_POST -->
<form method="post">

<select name="couleur">
<option value="0" <?php echo choixParDefaut('0'); ?>>- Choissez une couleur -</option>
<option value="Bleu" <?php echo choixParDefaut('Bleu'); ?>>Le Bleu</option>
<option value="Marron" <?php echo choixParDefaut('Marron'); ?>>Le Marron</option>
<option value="Vert" <?php echo choixParDefaut('Vert'); ?>>Le Vert</option>
<option value="Rose" <?php echo choixParDefaut('Rose'); ?>>Le Rose</option>
<option value="Jaune" <?php echo choixParDefaut('Jaune'); ?>>Le Jaune</option>
</select>



</form>

<!-- On vérifie si le visiteur a choisi une couleur -->
<?php
if (isset($_POST['couleur']) and $_POST['couleur']!='0')
{
echo 'Votre couleur préférée est le : ' . htmlspecialchars($_POST['couleur']) . '

';
echo 'Ici $_POST[\'couleur\'] retourne donc la valeur de l\'attribut VALUE de l\'élément OPTION

';
}
else
{
echo 'Veuillez séléctionner une valeur, siouplait, cimer bien.';
}
?>

Voilà si tu ne comprends pas, cliques sur le lien en haut de la page et regardes la section PHP/MySQL, très instrucive.
En éspérant t'avoir aider.

Joyeux Noël et Bonne Année.
Messages postés
28
Date d'inscription
mercredi 10 octobre 2007
Statut
Membre
Dernière intervention
3 février 2008

Ha et pardon pour le double poste, mais si tu n'es pas satisfait par les réponses ne cliques pas sur
"réponse accéptée" sinon tu auras beaucoup moins de lecteur et donc beaucoup de réponse logique....

Voili, Voilou.