【问题标题】:changing from dropdown menu to mutli select open box从下拉菜单更改为多选打开框
【发布时间】:2012-10-29 11:52:09
【问题描述】:

我有一个下拉菜单,我想将其更改为多选框。如果您只选择 1 个选项(我之前的方式),则下面的代码有效,但您选择 2 它只会显示两个选项中的 1 个,我怎样才能让它显示两个选项都被选中,这里是代码:

<?php $makes = array("volvo","Saab","Opel","Audi","BMW") ?>


<form method="post" name="store" action="<?php $_SERVER['PHP_SELF'] ?>" >
<select multiple="multiple" name="cars">
<?php foreach ($makes as $make){echo "<option value=\"$make\">". $make ."</option>";           $vehicles = $_POST['cars'];} ?>
    <input name="submit" type="submit">
    </select>
</form>
<?php 


if($_POST['submit']){
  echo $vehicles;
}
?>
</body>
</html>

【问题讨论】:

    标签: php loops drop-down-menu foreach superglobals


    【解决方案1】:

    我希望我没看错,您想从 HTML 多选框中检索结果数组。

    顺便说一句,您的代码片段不正确; HTML

    结束标记应该在结束

    【讨论】:

      【解决方案2】:

      您的问题并不完全清楚,但我认为您的意思是以下代码仅回显一个值:

      if($_POST['submit']){
        echo $vehicles;
      }
      

      要将您选择的汽车变成一个数组,您需要在名称末尾添加[]:

      <select multiple="multiple" name="cars[]">
      

      然后到echo每个选择你可以使用foreach循环:

      foreach ($_POST['cars'] as $car)
          echo $car.'<br />';
      

      【讨论】:

      • 我认为你在正确的轨道上,非常感谢你,但我在尝试你的代码时遇到错误:警告:为 foreach() 提供的参数无效
      • 我忘记了这部分:name="cars[]" 感谢您的帮助!
      【解决方案3】:

      你可以试试 if($_POST['submit']){ print_r($vehicles); } 如果有任何问题,请告诉我..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-16
        • 1970-01-01
        • 2017-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-17
        • 2014-05-27
        相关资源
        最近更新 更多