MySQL dans liste déroulante
Résolu
salut tous le monde,
je vais essayer d'être claire, j'ai un petit probleme qui je suis sur va vous prendre 2,5 secondes a resoudre, tous du moins j'espère.
je souhaite affiché 2 champs d'une table dans 1 liste deroulante, et que cette liste me renvoi la valeur des 2 champs pour pouvoir l'ecrire dans le champ d'une autres table.
voici mon code
merci a tous pour votre aide
//je suis deja connecté a la bdd en PDO
<?php
$rep_enseigne = $bdd->query('SELECT enseigne,ville FROM client');
$rep_enseigne->execute(array('enseigne', 'ville'));
echo '<select>';
foreach($rep_enseigne as $element1)
{
echo '<option value:"'.$element1[0].'">'.$element1[0].'</option>'."\n";
}
echo '</select>'
?>
je vais essayer d'être claire, j'ai un petit probleme qui je suis sur va vous prendre 2,5 secondes a resoudre, tous du moins j'espère.
je souhaite affiché 2 champs d'une table dans 1 liste deroulante, et que cette liste me renvoi la valeur des 2 champs pour pouvoir l'ecrire dans le champ d'une autres table.
voici mon code
merci a tous pour votre aide
//je suis deja connecté a la bdd en PDO
<?php
$rep_enseigne = $bdd->query('SELECT enseigne,ville FROM client');
$rep_enseigne->execute(array('enseigne', 'ville'));
echo '<select>';
foreach($rep_enseigne as $element1)
{
echo '<option value:"'.$element1[0].'">'.$element1[0].'</option>'."\n";
}
echo '</select>'
?>
8 réponses
-
Bonjour,
Euhm je n'ai pas fait de php depuis un moment, mais tu ne devrais pas parcourir ton tableau element1 ? C'est-à-dire modifier ton foreach à la fin comme ça :
i=0; foreach($rep_enseigne as $element1) { i=i+1; echo '<option value:"'.$element1[i].'">'.$element1[i].'</option>'."\n"; }-
bonjour,
Il faut connaître la nature du contenu du tableau $rep_enseigne
Pour celà, faire un print_f($rep_enseigne); avant la boucle.
Si c'est un tableau associatif comem je le suppose,a boucle foreach sera de ce type:
foreach($rep_enseigne as $key => $row) { // $row = ligne de données echo $row['enseigne']; echo $row['ville']; echo "<br>\n"; }
Ce petit bout de code donne une idée du contenu du tableau. Si j'ai raison, je comprends pas pourquoi mettre dans option:
<option value='CARREFOUR'>LA VILLE DU BOIS</option>
En tant qu'identifiant unique, il serait plus judicieux de sortir l'id de l'enregistremenrt en tant que valeur de OPTION.... Non?
A+ -
-
Bonjour,
la solution:
<option value='CARREFOUR LA VILLE DU BOIS'>CARREFOUR LA VILLE DU BOIS</option>
Utiliser un caractère spécial, genre "pipe" | et faire comme ceci:
<select name="mesDonnees"> <option value='CARREFOUR|LA VILLE DU BOIS'>CARREFOUR LA VILLE DU BOIS</option> ...mes autres options... </select>
Après envoi des données, dans le script de traitement, on retrouve ceci:
echo $_POST['mesDonnees'];
affiche CARREFOUR|LA VILLE DU BOIS
noter le | , on sépare les données comme ceci:
list($magasin, $commune) = explode('|', $_POST['mesDonnees']); echo $magasin."<br>".$commune;
affiche:
CARREFOUR
LA VILLE DU BOIS
A+
-