IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Réafficher les données saisies dans un menu déroulant


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut Réafficher les données saisies dans un menu déroulant
    Bonjour a tous!

    j'ai un formulaire dans lequel il y a une gestion des erreurs et qui controlent les oublies ou erreurs de l'internaute envoyés par $_ POST.

    Si il ya une erreur, un message apparait sur le problème concerné mais les données inscrites dans le formulaire sont tous effacer

    Étant donné que le formulaire est plutot long, je réaffiche les données inscrites par l'utilisateur dans le champ du formulaire pour qu'il n'ait pas a tout recommencer.

    pour les champs input, ca va bien, aucun probleme!!

    mais j'éprouve des problèmes avec le réaffichage des selects qui a été choisi par l'utilisateur.

    J'ai vérifier sur les tutos de jerome et Cyberzoide mais aucun ne convient à ce que je veux faire

    j'ai donc fais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <label for="pays">Pays : </label>
             <select name="pays" size="1" id="pays">
    			<option value="">choisir</option>
    			<option value="canada"<?php if (isset($_POST['action']) && !empty($_POST['pays'])) {echo "selected=\"selected\"";} ?>>Canada</option>
    			<option value="etats_unis" <?php if (isset($_POST['action']) && !empty($_POST['pays'])) {echo "selected=\"selected\"";} ?>>États_Unis</option>
    			<option value="mexique" <?php if (isset($_POST['action']) && !empty($_POST['pays'])) {echo "selected=\"selected\"";} ?>>Mexique</option>
    mais je n'ai pas de message d'erreur et l'affichage ne se fait pas non plus en fonction de la valeur qui a été choisi

    quel est la meilleure méthode pour ce cas-ci?

    merci de vos réponses
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi testes-tu si $_POST['pays'] est vide a chaque ligne ?
    Il faut tester si l'option en cours est la meme que $_POST['pays'] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="canada"<?php if (isset($_POST['pays']) && $_POST['pays'] == "canada" ) {echo 'selected="selected"';} ?>>Canada</option>
    On peut faire un truc plus propre avec un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $lstpays=array("canada"=>"Canada", "etats_unis"=>"Etats unis", "mexique"=>"Mexique");
    foreach ($lstpays as $valeur=>$pays) {
       $selected = (isset($_POST['pays']) && $_POST['pays'] ==$valeur)) ? ' selected="selected"' : "";
       echo '<option value="' . $valeur . '"' . $selected .'>' . $pays . '</option>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    merci beaucoup sabotage!!

    je comprends mieux l'utilisation de la forme du tableau dans un select

    mais est-ce que je peux demander encore une attention a cette forme de select?

    ca marche pas fort, tel que écris dans ce genre pour l'afficher!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    		  for ($i = 1; $i <= 31; $i++) {
     
    		    if ($i < 10) {
    			  $j = "0" . $i;
    			} else {
    			  $j = $i;
    			}
    		    $option = "<option value='$j'";
     
    			if ($_jour == "$j") {
    			  $option .= " selected ";
    			}
    			$option .= "> " . $j . "</option>";
    			//echo $option;
    			$selected = (isset($_POST['action']) and $_POST['jour'] == $jour)?'selected="selected"':'';
            echo '<option value="'.$option.'" '.$selected.'>'.$option.'</option>';
    		  }
    		  ?>
    l'affichage ne se fait pas bien dans le select et le selected ne fonctionne pas
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est un drole de mic-mac que tu as fais la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     for ($i = 1; $i <= 31; $i++) {
     
    			$j = sprintf("%02d",$i); 
    			echo '<option value="' . $i . '"';
                    	if (isset($_POST['jour']) and $_POST['jour'] == $i) {
    			  echo ' selected="selected"';
    			}
    			echo ">" . $j . "</option>";
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    Mic-mac!! ha!ha!ha!

    je ne croyais pas que tu connaissais cet expression par chez toi!!

    beaucoup plus simple comme ca oui!

    et merci beaucoup encore une fois sabotage
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    Y a une petite coquille, pour l'avoir intégré a mon site
    y a une parenthèse de trop après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $selected = (isset($_POST['pays']) && $_POST['pays'] ==$valeur) ? ' selected="selected"' : "";
    Citation Envoyé par sabotage Voir le message
    On peut faire un truc plus propre avec un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $lstpays=array("canada"=>"Canada", "etats_unis"=>"Etats unis", "mexique"=>"Mexique");
    foreach ($lstpays as $valeur=>$pays) {
       $selected = (isset($_POST['pays']) && $_POST['pays'] ==$valeur)) ? ' selected="selected"' : "";
       echo '<option value="' . $valeur . '"' . $selected .'>' . $pays . '</option>';
    }

  7. #7
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    oui merci fahdo,
    je l'avais vu et corriger mais c'est super a utiliser ce truc!!
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/09/2008, 07h41
  2. Réponses: 2
    Dernier message: 19/06/2008, 20h04
  3. Recuperer les données saisie dans un formulaire
    Par hunzi dans le forum XMLRAD
    Réponses: 3
    Dernier message: 29/08/2006, 15h22
  4. Réponses: 8
    Dernier message: 19/05/2005, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo