Php 从下拉菜单更改为多选择打开框

Php 从下拉菜单更改为多选择打开框,php,loops,drop-down-menu,foreach,superglobals,Php,Loops,Drop Down Menu,Foreach,Superglobals,我有一个下拉菜单,我想更改为多选框。如果您仅选择1个选项(我以前的方式),则下面的代码正常工作,但如果您选择2,则它将仅显示两个选项中的一个,如何使其显示两个选定的选项,以下是代码: <?php $makes = array("volvo","Saab","Opel","Audi","BMW") ?> <form method="post" name="store" action="<?php $_SERVER['PHP_SELF'] ?>" > <

我有一个下拉菜单,我想更改为多选框。如果您仅选择1个选项(我以前的方式),则下面的代码正常工作,但如果您选择2,则它将仅显示两个选项中的一个,如何使其显示两个选定的选项,以下是代码:

<?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>

我希望我读对了,您希望从HTML多选框中检索结果数组

顺便说一下,您的代码snippit是不正确的;HTML结束标记应该在结束标记之后,我不确定为什么在PHP for()循环中有以下内容:

您需要将HTML标记的name属性设置为数组,如下所示(注意,我没有测试此代码):



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

if($_POST['submit']){
  echo $vehicles;
}
要将选定的汽车变成一个阵列,您需要在名称末尾添加
[]

<select multiple="multiple" name="cars[]">
您可以尝试使用if($\u POST['submit']){ 印刷(车辆); }
如果有任何问题,请告诉我。

我认为您的思路是正确的,非常感谢,但我在尝试代码时遇到错误:警告:为foreach()提供的参数无效我忘记了这部分:name=“cars[]”谢谢您的帮助!
if($_POST['submit']){
  echo $vehicles;
}
<select multiple="multiple" name="cars[]">
foreach ($_POST['cars'] as $car)
    echo $car.'<br />';