Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/08/2007, 14h41   #1
Membre régulier
 
Avatar de carelha
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 74
Points : 74
Par défaut Récupérer les données d'une base pour un "select multiple"

bonjour,
j'ai un formulaire avec un select multiple.
je voudrais que soient présélectionnées les valeurs qui ont déjà été enregistrées dans la bdd. Ce sont des numéros de départements, enregistrés sous la forme 75 ou 75,77,78.
Je ne sais pas comment faire pour que le select fasse la préselection quand il y a plusieurs valeurs dans la cellule.

je vous mets mon code pour l'instant :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
$listelieu=array(
"" => "Choisir",
"75"=>"75",
"77"=>"77",
"78"=>"78",
"91"=>"91",
);
 
echo "<select name='lieu[]' multiple>";
foreach ($listelieu as $key=>$value) {
$selected = ($data['lieu'] == $key)?"selected":"";
echo '<option value="'.$key.'" '.$selected.'>'.$value.'</option>';
}
echo "</select>";	
?>
(la requête qui donne $data a été définie avant et fonctionne)

merci de votre aide
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks.

un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>";
carelha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 17h18   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
d'abord tu découpes ton champ suivant les virgules avec la fonction http://php.net/explode et ensuite tu peux regarder si le département est dans le tableau avec la fonction http://php.net/in_array
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 08h31   #3
Membre régulier
 
Avatar de carelha
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 74
Points : 74
je viens de réaliser que c'était juste explode, j'allais dire que j'avais trouvé la solution.
merci de ton aide
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks.

un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>";
carelha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 10h19   #4
Membre régulier
 
Avatar de carelha
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 74
Points : 74
en fait j'ai encore un problème :
j'ai bien récupéré le tableau issu d'un explode :
Code :
1
2
$data = mysql_fetch_array($req);
$selectlieu = explode(",", $data['lieu']);
mais je ne sais pas comment le réutiliser avec le sélect multiple cité dans mon premier message dont le contenu est déjà issu d'un autre tableau. je comprends bien que le contenu de $selectlieu doit remplacer le data['lieu'] dans le select mentionné , mais je ne sais pas comment m'y prendre.

Merci à ceux qui pourront m'aider, je suis complétement perdue.
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks.

un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>";
carelha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 10h28   #5
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
bonjour

Mathieu t'a proposé une fonction bien utile : in_array

Pour reprendre ton premier code, tu pourrais faire quelque chose comme ça :
Code :
$selected = (in_array($key, $select_lieu))?"selected":"";
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 11h15   #6
Membre régulier
 
Avatar de carelha
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 74
Points : 74
merci, c'est ca, je ne voyais pas comment utiliser in_array
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks.

un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>";
carelha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h49.


 
 
 
 
Partenaires

Hébergement Web