2012-11-09 43 views
0

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

回答

0

它不是从你的问题完全清楚,但我想你指的是FOLL代码由于位仅呼应一个值:

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

要打开您所选择的车进入你需要添加[]到名称末尾的数组:

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

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

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

我认为你是在正确的轨道上,我非常感谢你,而是试图在你的代码我得到一个错误: 警告:无效的参数提供对于foreach() –

+0

我忘了这个零件: name =“cars []” 感谢您的帮助! –

1

我希望我正确地阅读这个,你想从HTML多选框中检索结果数组。

顺便说一句,你的代码snippit是不正确的;在HTML <形式>关闭标签后应您的交易<选择>标签,我不知道为什么你已经在你的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?

+0

_italic_感谢 –

0

你可以尝试,如果($ _ POST [ '提交']){ 的print_r($车) ; } 请让我知道如果有问题的话..

+0

这甚至不可读... –

相关问题