我正在尝试允许用户选择多个项目,并使用PHP将所选项目发布到下一页。
上面的过程运行正常,但我现在遇到的问题是每个项目都有一个下拉菜单,里面有一些颜色。颜色是一样的。
我需要做的是允许用户为每个选定的项目选择1种颜色并将其发送到下一页。
这应该很简单,但由于某些原因我在下一页得到的只是“数组”而不是所选选项的值!
这是我的代码:
第一页:
$products_list .= '<div align="center" style="width:150px; height:100px; float:left; border:solid 1px #666; margin-left:20px; margin-bottom:10px;">
<input style="float:left;" type="checkbox" name="check_list[]" value="'.$id.'" />
<img width="67" src="../inventory_images/'.$id.'.jpg" /><br />
'.$product_name.'<br />
<select name="colours[]">
<option >Choose a Colour</option>
<option value="Black">Black</option>
<option value="White">White</option>
<option value="Red">Red</option>
<option value="Blue">Blue</option>
</select>
</div>';
echo $products_list;
在第二页上我有这个:
if(isset($_POST['submit'])){//to run PHP script on submit
if(!empty($_POST['check_list'])){
// Loop to store and display values of individual checked checkbox.
$products_list = "";
foreach($_POST['check_list'] as $selected){
$colours = $_POST['colours'];
//MYSQL QUERIES ETC GOES HERE....
$products_list .= ''.$product_name.' and '.$colours.'';
}
echo $products_list ;
在第二页上,所有选定项目的$product_name
正确且正确地回显,但$colours
显示数组。
有人可以就此提出建议吗?
由于
编辑:
请注意$_POST['colours'];
在第二页上返回Array。
答案 0 :(得分:1)
要将复选框与选区绑定,您需要对索引编号进行硬编码(本例中为1),因为可能不会选中复选框,因此无法提交。
<input typ="checkbox" name="check_list[1]">
<select name="colours[1]">
<option >Choose a Colour</option>
<option value="Black">Black</option>
<option value="White">White</option>
<option value="Red">Red</option>
<option value="Blue">Blue</option>
</select>
然后只是:
foreach($_POST['check_list'] as $key => $selected) {
echo $_POST['colours'][$key]; // use the key from the associated checkbox
}
如果任何选择将是多重选择,那么您将需要执行以下操作:
<select name="colours[1][]" multiple>
<select name="colours[2]">
然后:
foreach($_POST['check_list'] as $key => $selected) {
echo is_array($_POST['colours'][$key]) ? implode(',', $_POST['colours'][$key]) : $_POST['colours'][$key];
}