Liste multiple [Fermé]

Signaler
Messages postés
5
Date d'inscription
jeudi 3 mars 2016
Statut
Membre
Dernière intervention
4 mars 2016
-
Messages postés
2385
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
18 juin 2021
-
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

Messages postés
2385
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
18 juin 2021
446
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,