我试图允许用户选择多个项目,并使用PHP将所选项目发布到下一个页面。
上面的过程很好,但我现在的问题是每个项目都有一个下拉菜单,里面有一些颜色。颜色是一样的。
我需要做的是允许用户为每个选择的项目选择一种颜色,并将其发送到下一页。
这应该很简单,但由于某种原因,我在下一页中得到的只是"数组",而不是所选选项的值!
这是我的代码:
首页:
$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 ;
在第二页上,所有所选项目的CCD_ 1都得到了正确的回声,但CCD_。
有人能就此提供建议吗?
感谢
编辑:
请注意,$_POST['colours'];
正在第二页返回Array。
要将复选框与选择绑定,您需要硬编码索引号(本例中为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];
}