我试图根据复选框选择从mysql数据库中获取多个项目。
示例:
1-用户在页面上选择3个复选框,然后单击提交按钮。 在下一页上,将显示这3个产品。
我当前的代码是这样的:
第一页:
<div align="center">
<input style="float:left;" type="checkbox" name="check_list[]" value="'.$product_name.'" />
<img width="67" src="../images/'.$id.'.jpg" /><br />
'.$product_name.'
</div>
上面的代码位于while loop
,它运行正常。我应该从mysql数据库中获取所有产品。
第二页:
<?php
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.
foreach($_POST['check_list'] as $selected){
//echo $selected."</br>";
include "../config/connect.php";
// This block grabs the whole list for viewing
$products_list = "";
$sql = "SELECT * FROM products WHERE product_name='$selected'";
$query = mysqli_query($db_conx, $sql);
$productCount = mysqli_num_rows($query); // count the output amount
if ($productCount > 0) {
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$id = $row["id"];
$product_name = $row["product_name"];
$gender = $row["gender"];
$products_list .= '<div align="center">
<input style="float:left;" type="checkbox" name="check_list[]" value="'.$product_name.'" />
<img width="67" src="../images/'.$id.'.jpg" /><br />
'.$product_name.'
</div>';
}
} else {
$products_list .= "You have nothing";
}
}
}
}
?>
<?php echo $products_list; ?>
第二页上的代码只回显最后一个检查项目!
但我需要显示第一页上检查的所有项目。
有人可以帮我解决这个问题吗?
感谢。
答案 0 :(得分:2)
不要做
$products_list = "";
循环中的。 在
之前移动它foreach($_POST['check_list'] as $selected){
答案 1 :(得分:1)
它打印最后一个检查项目,因为您正在重置每次循环交互时回显的字符串。使用此代码。
<?php
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){
//echo $selected."</br>";
include "../config/connect.php";
// This block grabs the whole list for viewing
$sql = "SELECT * FROM products WHERE product_name='$selected'";
$query = mysqli_query($db_conx, $sql);
$productCount = mysqli_num_rows($query); // count the output amount
if ($productCount > 0) {
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$id = $row["id"];
$product_name = $row["product_name"];
$gender = $row["gender"];
$products_list .= '<div align="center">
<input style="float:left;" type="checkbox" name="check_list[]" value="'.$product_name.'" />
<img width="67" src="../images/'.$id.'.jpg" /><br />
'.$product_name.'
</div>';
}
} else {
$products_list .= "You have nothing";
}
}
}
}
?>
<?php echo $products_list; ?>
我将$products_list
移到了foreach循环之外。