Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 24/11/2010, 14h57   #1
Futur Membre du Club
 
Inscription : mai 2007
Messages : 115
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 115
Points : 19
Points : 19
Par défaut Menu déroulant à partir d'un tableau

Bonjour à tous,
Je souhaite faire un menu déroulant avec un tableau. Les optgroups doivent correspondent aux valeurs dossier1 et dossier2 et les valeurs "option" doivent correspondent aux valeurs des tableaux correspondants.
J'ai fait un script ci-dessous. J'affiche bien les optgroups mais pour les options je bloque.
Merci de votre aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$tab = array(
	"dossier1" => array("sdossier11","sdossier12","sdossier13"),
	"dossier2" => array("sdossier21")
);
 
$keys = array_keys($tab);
foreach($keys as $k){
	echo '<optgroup label="'.$k.'"></optgroup>';
	$vals = array_values($tab);
}
 
// résultat
<optgroup label="dossier1"></optgroup>
<optgroup label="dossier2"></optgroup>
totofe49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 20h33   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$tab = array(
	"dossier1" => array("sdossier11","sdossier12","sdossier13"),
	"dossier2" => array("sdossier21")
);
 
foreach ( $tab as $name => $sub ) { // Boucle sur les <optgroup>
    echo "<optgroup label='$name'>" ;
    foreach ( $sub as $name ) { // Boucle sur les <option> du <optgroup>
        echo "<option>$name</option>" ;
    }
    echo '</optgroup>' ;
}
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 17h25   #3
Futur Membre du Club
 
Inscription : mai 2007
Messages : 115
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 115
Points : 19
Points : 19
Bonjour et merci pour votre aide, désolé mais je n'ai pas pu répondre avant.
Je rencontre un autre problème pour faire un déroulant avec des options dont chaque valeur est différente de chaque sélection :
merci pour votre aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
Array
(
    [0] => Array
        (
            [id] => 1
            [theme] => tourisme
        )
 
    [1] => Array
        (
            [id] => 5
            [theme] => conseil communautaire
        )
 
)
 
pour arriver à cela :
 
<select name="">
<option value="1">tourisme</option>
<option value="5">conseil communautaire</option>
</select>
totofe49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 19h02   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Code :
1
2
3
4
5
6
7
<select name="">
    <?php foreach ( $data as $element )  : ?>
        <option value="<?php echo $element['id'] ?>">
            <?php echo $element['theme'] ?>
        </option>
    <?php endforeach ?>
</select>
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 23h13   #5
Futur Membre du Club
 
Inscription : mai 2007
Messages : 115
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 115
Points : 19
Points : 19
Merci effectivement ca fonctionne mieux
totofe49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 09h42   #6
Futur Membre du Club
 
Inscription : mai 2007
Messages : 115
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 115
Points : 19
Points : 19
bonjour,

j'ai un peu améliorer le script en récupérant les clés du tableau si on ne les connait pas à l'avance
Code :
1
2
3
4
5
6
7
8
9
 
<select name="">
    <?php foreach ( $data as $element )  : ?>
        <?php $keys = array_keys($element); ?>
        <option value="<?php echo $element[$keys[0]] ?>">
            <?php echo $element[$keys[1]] ?>
        </option>
    <?php endforeach ?>
</select>
totofe49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 09h44   #7
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Code :
foreach ( $data as $key => $element )
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. 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 16h15.


 
 
 
 
Partenaires

Hébergement Web