我有一个下拉菜单,我想要更改为多选框。如果您只选择1个选项(我之前使用它的方式),下面的代码是有效的,但是您选择2它只会显示两个中的1个,如何让它显示所选的两个选项,这里是代码:< / p>
<?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>
答案 0 :(得分:1)
我希望我能正确读到你想从HTML多选框中检索一系列结果。
顺便说一下你的代码snippit是不正确的; HTML&lt; form&gt;结束标记应该在你关闭之后&lt; select&gt;标签,我不知道为什么你的PHP for()循环中有以下内容:
$vehicles = $_POST['cars'];
您需要将HTML标记的name属性设置为如下数组(注意我没有测试此代码):
<select multiple="multiple" name="cars[]">
<?php
foreach ($makes as $make) {
echo "<option value=\"$make\">". $make ."</option>";
}
?>
</select>
<?php
if($_POST['submit']) {
print_r($_POST['cars']);
}
?>
PHP.net - How do I get all the results from a select multiple HTML tag?
答案 1 :(得分:0)
你的问题并不完全清楚,但我认为你的意思是下面的代码只能回应一个值:
if($_POST['submit']){
echo $vehicles;
}
要将您选择的汽车变成数组,您需要在名称的末尾添加[]
:
<select multiple="multiple" name="cars[]">
然后,echo
每个选项都可以使用foreach
循环:
foreach ($_POST['cars'] as $car)
echo $car.'<br />';
答案 2 :(得分:0)
你可以试试if($ _ POST ['submit']){ 的print_r($车辆); } 如果有任何问题,请告诉我..