我很难看到这里出了什么问题。我试图根据已选中的复选框从我的数据库中删除。 if(!empty($ _ POST ['removeCheckbox']))表示removeCheckbox为空,即使我回显$ currentRow []它显示值。提前谢谢。
while($row = mysqli_fetch_array($paperToReview)){
if ($row > 0) {
$currentRow = array($row['uid'], $row['toReview']);
echo $currentRow[0];
echo $currentRow[1];
echo '<td width = 200><input type="checkbox" name="removeCheckbox[]" value="'.$currentRow.'"> Remove</td>';
}
}
//Remove button
echo'<td width = 200><td width = 200><td width = 200><td width = 200><td width = 200><input type=submit name=submit value="Remove Checked Rows"></td>';
然后在这里,我看到是否已经检查了删除按钮并查看了所有选中的复选框。
if (isset($_POST['submit']) && $_POST['submit'] =="Remove Checked Rows"){
if(!empty($_POST['removeCheckbox'])) {
//deletes row from database
foreach($_POST['removeCheckbox'] as $check) {
DBSubmit("DELETE FROM paper_review WHERE paper_reviewer_id = '" . $check[0] ."' AND paperid = '" . $check[0] ."'");
}
}
答案 0 :(得分:0)
你确定,满足了这个条件吗?
在提交条件之前检查$ _POST变量中是否有正确的值,简单写一下这样的内容
echo(<pre>); print_r($_POST); echo(</pre>);
请发送更多代码(如何创建表单,post变量中的内容)
吨。
答案 1 :(得分:0)
这将使所有值都为'Array',因为您无法直接回显数组 试试这个:
while($row = mysqli_fetch_array($paperToReview)){
if ($row > 0) {
$currentRow = array($row['uid'], $row['toReview']);
echo '<td width = 200><input type="checkbox" name="removeCheckbox[]" value="'.json_encode($currentRow).'"> Remove</td>';
}
}
//Remove button
echo'<td width = 200><td width = 200><td width = 200><td width = 200><td width = 200><input type=submit name=submit value="Remove Checked Rows"></td>';
在控制器代码中
if (isset($_POST['submit']) && $_POST['submit'] =="Remove Checked Rows"){
if(!empty($_POST['removeCheckbox'])) {
//deletes row from database
foreach($_POST['removeCheckbox'] as $jsonCheck) {
$check = json_decode($jsonCheck);
DBSubmit("DELETE FROM paper_review WHERE paper_reviewer_id = '" . $check[0] ."' AND paperid = '" . $check[0] ."'");
}
}
您可以使用serialize / unserialize或任何其他方法替换json_encode / decode