Php 从下拉菜单更改为多选择打开框
我有一个下拉菜单,我想更改为多选框。如果您仅选择1个选项(我以前的方式),则下面的代码正常工作,但如果您选择2,则它将仅显示两个选项中的一个,如何使其显示两个选定的选项,以下是代码: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'] ?>" > <
<?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 />';