我正在尝试根据用户在上一页选择的复选框运行SELECT语句。每个复选框都将产品的ID作为值。
print '<td><input type="checkbox" name="checkbox[]" value="'. $row["id_product"] .'"></td>';
如果选中复选框1,2,3,4和5,我希望SELECT语句选择ID为1 - 5的产品。这是我到目前为止所拥有的:
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT reference, price, unit_price_impact FROM ps_product_attribute WHERE id_product = ". implode(',', $_POST['checkbox']) ."");
echo $stmt;
$stmt->execute();
$product = $stmt->fetchAll();
echo '<div class="table-responsive">';
echo '<table class="table table-striped">';
foreach ($product as $row) {
print '<tr>';
print '<td>'. $row['reference'] .'</td>';
print '<td></td>';
print '<td>'. $row['price'] .'</td>';
print '<td></td>';
print '</tr>';
}
echo '</table>';
echo '</div>';
}
为什么$ _POST ['复选框']值为空?
答案 0 :(得分:0)
如果您使用Ajax读取复选框,那么在jquery中您必须首先拆分/创建一个Array /对象然后发送到php else如果您使用表单提交那么它不是问题。请尝试使用 isset()/ empty()代码调试代码,如下所示
<form action="#" method="post">
<input type="checkbox" name="checklist[]" value="a"><label>a</label><br/>
<input type="checkbox" name="checklist[]" value="b"><label>b</label><br/>
<input type="checkbox" name="checklist[]" value="c"><label>c</label><br/>
<input type="submit" name="submit" value="Submit"/>
</form>
<?php
if(isset($_POST['submit'])){//to run PHP script on submit
if(!empty($_POST['checklist'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['checklist'] as $selected){
echo $selected."</br>";
}
}
}
?>
请尝试使用此示例进行调试,谢谢