J'essaie de traiter un formulaire via la méthode POST et j'ai du mal à passer plusieurs champs de sélection.

<label for="sport">Favourite sport: </label>
    <select id="sport" name="favsport[]" size="4" multiple>
        <option value="soccer">Soccer</option>
        <option value="cricket">Cricket</option>
        <option value="squash">Squash</option>
        <option value="golf">Golf</option>
        <option value="tennis">Tennis</option>
        <option value="basketball">Basketball</option>
        <option value="baseball">Baseball</option>
    </select>





$sportstr = $_POST["favsport"];
<p><strong> Favourite Sport = </strong> <?php echo "$sportstr"; ?></p>
-1
Raveel 26 avril 2017 à 07:55

3 réponses

Meilleure réponse

Lorsque vous publiez le formulaire avec le champ de sélection multiple favsport[], il est publié sous forme de tableau:

array (
  'favsport' => 
  array (
    0 => 'cricket',
    1 => 'squash',
    2 => 'golf',
    3 => 'tennis',
    4 => 'basketball',
    5 => 'baseball',
  ),
)
0
Zeusarm 26 avril 2017 à 05:10

C'est parce que votre nom de champ est favsport[] et qu'il vous donne un tableau en php $_POST["favsport"] que vous faites echo $sportstr variable, cela vous donnera Remarque: conversion de tableau en chaîne c'est pourquoi vous devez utiliser la fonction print_r() pour imprimer le tableau. utilisez le code ci-dessous, cela pourrait être votre solution.

$sportstr = $_POST["favsport"];
print_r($sportstr);
0
Ahmed Ginani 26 avril 2017 à 08:09

Lorsque vous traitez avec multiselect dropdown, vous pouvez obtenir sa valeur comme:

$sportstr = $_POST["favsport"];

Ici $sportstr est un tableau, vous devez donc utiliser foreach() pour accéder à tous ses éléments.

0
Mayank Pandeyz 26 avril 2017 à 05:30