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

时间:2012-11-09 06:44:51

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

我有一个下拉菜单,我想要更改为多选框。如果您只选择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>

3 个答案:

答案 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($车辆); } 如果有任何问题,请告诉我..