Sélectionner les items d'un select multiple depuis un array
Gecko62
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je bute sur un petit problème :
J'ai des données contenue dans un array (provenant d'une base de données)
J'ai un champ SELECT multiple avec des données provenant d'une table
J'aimerais pouvoir sélectionner les items correspondants aux données contenue dans l'array
cela j'y arrive, mais car il y a un mais,
si les données dans mon array sont au nombre de 2 tous mes items dans le SELECT sont affichés deux fois,
si les données dans mon array sont au nombre de 3 tous mes items dans le SELECT sont affichés trois fois,
...
si les données dans mon array sont au nombre de 5 tous mes items dans le SELECT sont affichés cinq fois fois,
or je ne trouve pas comment éviter cela quelqu'un aurait-il la solution à apporter à mon code !!!
D'avance un grand merci pour votre aide
Bien cordialement
Gecko62
Je bute sur un petit problème :
J'ai des données contenue dans un array (provenant d'une base de données)
J'ai un champ SELECT multiple avec des données provenant d'une table
J'aimerais pouvoir sélectionner les items correspondants aux données contenue dans l'array
cela j'y arrive, mais car il y a un mais,
si les données dans mon array sont au nombre de 2 tous mes items dans le SELECT sont affichés deux fois,
si les données dans mon array sont au nombre de 3 tous mes items dans le SELECT sont affichés trois fois,
...
si les données dans mon array sont au nombre de 5 tous mes items dans le SELECT sont affichés cinq fois fois,
or je ne trouve pas comment éviter cela quelqu'un aurait-il la solution à apporter à mon code !!!
$auteurs = explode("/", $row_Livre[4]);
echo "<option value='-1'>Sélectionne l'auteur</option>";
while ($row_Auteur = mysql_fetch_row($verif_Auteur)) {
foreach ($auteurs as $auteur)
{
if ($row_Auteur[0] == $auteur) { $sel2 = 'selected'; } else { $sel2 = ''; }
echo "<option value='".$row_Auteur[0]."' ".$sel2.">".$row_Auteur[1]."</option>";
}
}
D'avance un grand merci pour votre aide
Bien cordialement
Gecko62
A voir également:
- Sélectionner les items d'un select multiple depuis un array
- Comment sélectionner un message sur whatsapp pour y répondre - Guide
- Ecran multiple pc - Guide
- Excel cellule choix multiple - Guide
- Selectionner du texte sur un pdf - Guide
- Copier coller multiple - Guide
1 réponse
Salut,
Ton erreur vient de l'imbrication des deux boucles. Tu ne dois avoir qu'une seule boucle pour parcourir ta liste d'auteur, et pour chaque auteur vérifier si celui-ci existe dans la liste des auteurs sélectionnés (avec la fonction in_array par exemple).
Voici une solution possible (avec des données de tests puisque je n'ai pas accès à ta bdd) :
Bonne journée
Ton erreur vient de l'imbrication des deux boucles. Tu ne dois avoir qu'une seule boucle pour parcourir ta liste d'auteur, et pour chaque auteur vérifier si celui-ci existe dans la liste des auteurs sélectionnés (avec la fonction in_array par exemple).
Voici une solution possible (avec des données de tests puisque je n'ai pas accès à ta bdd) :
<?php // les auteurs de ma bdd $auteurs = array('Auteur1', 'Auteur2', 'Auteur3', 'Auteur4'); // les auteurs selectionnées dans le formulaire $auteursSelect = array('Auteur2', 'Auteur3'); ?> <select name="" multiple> <option value="-1">Choisir l'auteur</option> <?php foreach ($auteurs as $auteur) : ?> <option value="<?php echo $auteur; ?>"<?php echo in_array($auteur, $auteursSelect) ? ' selected' : ''; ?>><?php echo $auteur; ?></option> <?php endforeach; ?> </select>
Bonne journée