begin process at 2012 05 30 15:19:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Liste déroulante réaffichée dans un formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Liste déroulante réaffichée dans un formulaire

mercredi 22 octobre 2008 à 02:17:35 | Liste déroulante réaffichée dans un formulaire

vintimes

Je suis en train de faire un formulaire sur lequel il y a une liste déroulante avec une région à saisir. A la validation du formulaire je vérifie si l'adresse mail existe dans la base avant d'enregistrer. Si l'adresse existe je réaffiche le formulaire avec les données saisies par l'utilisateur précédemment.

Admettons que je saisisse "Aquitaine" dans la liste déroulante. La variable $_POST['id_region'] a donc pris la valeur 2 .
Si dans le formulaire je saisis une adresse mail qui existe dans la base, le formulaire est alors réaffiché avec "Aquitaine" selectionné dans la liste déroulante.

Le problème c'est que lors de cet affichage la variable $_POST['id_region'] a pris la valeur 0 à cause du "selected".

Conséquences :
Si au deuxième affichage je fais une validation sans changer l'adresse, au troisième affichage il me fait une erreur "undefined index" (Normal puisque j'essaie d'afficher dans le tableau la valeur $region [0] qui n'existe pas).

Si au deuxième affichage je change l'adresse mail pour une adresse valide, ça m'enregistre le champ "id_région" à 0 dans la base alors que j'avais "Aquitaine" affiché et que je devrais donc enregistrer 2.

Comment faire pour que la variable $_POST['id_region'] conserve la valeur affichée ?

Merci d'avance pour votre aide

Voici le code de la liste déroulante :

<select name="id_region" id="id_region" >
       <option selected="selected">                

<?php
// On passe ici lors du premier affichage
// car la variable $_POST['id_region'] n'existe pas
if (!isset($_POST['id_region']))
{$choix = "choisissez...";
echo $choix;}


// On passe ici dès le deuxième affichage si l'utilisateur
// a saisi une adresse mail qui existe dans la base.

if (isset($_POST['id_region'])){
$region = array (1 => 'Alsace','Aquitaine','Auvergne');
$choix = ($_POST['id_region']);
echo $region [$choix];
// Le deuxième affichage fonctionne mais si je change l'adresse
// pour une adresse valide, ça m'enregistre 0 dans la base car la variable
// $region[0] est déjà egale à 0.
// Si je laisse l'adresse qui existe déjà dans la base,
// j'ai une erreur "undefined variable" au troisième
// affichage sur la ligne du dessus. En effet j'essaie d'afficher
// la valeur $region[0], mais celle-ci n'existe pas
}
?>
        
        </option>
// Le souci c'est qu'ici en sortant du "selected" lors
// du deuxième affichage, la variable $_POST['id_region']
// prend la valeur 0. c'est pour ça que ça plante.
       <option value="1">Alsace</option>
                <option value="2">Aquitaine</option>
                <option value="3">Auvergne</option>
</select>
mercredi 22 octobre 2008 à 10:09:02 | Réafficher liste déroulante avec option précédemment sélectionnée par l'utilisateur

vintimes

Réponse acceptée !
J'ai trouvé la solution :

Voici le code d'une liste déroulante qui se réaffiche avec l'option sélectionnée précédemment par l'utilisateur :

<select name="id_region" id="id_region" >

<option value="0"<?php if(!isset($_POST['id_region'])) { echo "selected=\"selected\"";  } ?>>choisissez...</option>
<option value="1"<?php if((isset($_POST['id_region']))&&(($_POST['id_region'])== 1)) { echo "selected=\"selected\"";  } ?>>Alsace</option>
<option value="2"<?php if((isset($_POST['id_region']))&&(($_POST['id_region'])== 2)){ echo "selected=\"selected\"";  } ?>>Aquitaine</option>
<option value="3"<?php if((isset($_POST['id_region']))&&(($_POST['id_region'])== 3)){echo "selected=\"selected\"";  } ?>>Auvergne</option>

</select>


Cette discussion est classée dans : formulaire, liste, affichage, adresse, region


Répondre à ce message

Sujets en rapport avec ce message

Probléme d'affichage d'une liste dynamique? [ par kenza_sana ] Bonjour j'ai pas arréter de chercher sur le forum pour résoudre mon probléme mais sans cesse.Je m'explique donc, je voudrai a partir d'un clic sur 1 b aide pour éditer fichier php [ par luciano12 ] Bonjour,   J'aimerais savoir si tu voudrais m'aider à modifier un fichier PHP que j'ai Formulaire qui calcul [DEPLACE] [ par twinsen60 ] BonjourJ'aimerai faire une sorte de formulaire, avec des champs a remplir par le biais de "liste déroulante".Suivant mon choix de ma liste, j'ai plusi liste deroulante [ par georgesm ] Bonjour,Je cherche de l'aide après avoir bien explorer le forum. Voici mon "petit"problème.J'ai une bd avec trois tables: table UN , table DEUX et tab guide pour formulaire [ par ramsou ] Bonjour,Je suis débutant (un peu avancé) et j'aimerai créer un guide pour un formulaire avec un retour du choix dans la box. En faite une fonction jav javascript et php [ par amine390 ] salutje veux utilise une fonction java script en php j'arrive pas a recupere la valeur de cette function l'erreur qui s'affiche est undifuned function il s'agit d'alimenter dans un formulaire une liste déroulante à partir d'une requête sql [ par amewole ] Il s'agit d'alimenter dans un formulaire une liste déroulante à partir d'unen requête sql  Tout passe bien sauf que je souhaite avoir les deux choses liste dynamique [ par lebelm ] Bonjour à tous,   Voilà, j’ai un formulaire où j’ai une première liste déroulante qui affiche des informations pris dans une base de donnée. J’aimera Ecrire données liste d'un formulaire vers un fichier txt [ par mastersabin ] Bonjour à tous, voila je n'arrive pas à écrire les données d'une liste dans un fichier texte. Seulement cette liste se remplie progressivement auparav Détecter un changement dans une liste déroulante [ par eddie5150 ] Bonjour, j'ai une question qui me turlupine, j'ai une liste déroulante qui poste le formulaire quand on sélectionne une valeur, ce que j'aimerai faire


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales