Liste multiple

hakimo111 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
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,
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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