Liste multiple

Fermé
hakimo111 Messages postés 5 Date d'inscription jeudi 3 mars 2016 Statut Membre Dernière intervention 4 mars 2016 - 3 mars 2016 à 19:13
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 7 mars 2016 à 10:25
Bonjour,
j'ai un formulaire avec une liste multiple,
<select multiple data-plugin-selectTwo class="form-control" name="status[]">
<option value="all" >ALL</option> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option>
<option value="4" >4</option>
</sélect>
imaginons que l'utilisateur a choisi les choix 1, 2, et 3 comment je pourai récupérer ces choix dans une variable pour pouvoir les utiliser dans une requete sql de genre (select * from table where status in (1,2,3) )
merci,

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 7/03/2016 à 11:17
Salut,

Comme pour tous les champs de formulaire, via le nom défini dans l'attribut name.
Donc en parcourant le tableau $_REQUEST['status'] (ou $_POST['status'] ou $_GET['status'] selon l'attribut method du formulaire).

Pour utiliser ce tableau dans la requête sql, tu peux utiliser implode pour le transformer en chaine de caractères.
Pour éviter les injections sql, il faut appliquer un contrôle sur les données du tableau. Ici puisque tu utilises des identifiants (nombre entier), on peut simplement appliquer intval() sur tous les éléments du tableau.

Soit :
if (!empty($_REQUEST['status'])) {
    $sql = 'select * from table where status in (' . implode(", ", array_map('intval', $_REQUEST['status'])) . ')';
    echo $sql;
}


Bonne journée,
0