在这里,我已经对复选框进行了验证。 首先,当我选择提交按钮时,它显示验证错误。 之后,当我点击“selectall”按钮时,它会进入提交按钮上的更新查询。 这意味着,$ _POST被设置。 虽然它通过“selectall”按钮进入更新查询,但我已经取消了该提交按钮。 为什么会这样?
if(!empty($_SESSION['id']) && isset($_POST['processorder']))
{
echo "hello";exit;
$chk = $_SESSION['id'];
$query="update order_details set process_order='1' where id IN(".implode(',',$chk).")";
//mysql_query($query) or die(mysql_error());
unset($_SESSION['id']);
unset($_SESSION['on']);
$_SESSION['flash']['success'] = 'Order processed successfully.';
header('Location: '.$_SERVER['REQUEST_URI']);
die();
}
if(empty($_SESSION['id']) && $_POST['processorder'])
{
print_r($_POST);
$error = "Please select an Order(s)..!!";
unset($_POST['processorder']);
echo "<br>";
print_r($_POST);
}
<input type="button" name="selectpage" value="Select All Page" onclick="selectall()"/>
<input type="submit" id="processorder" name="processorder" value="Process Order" class="submit-green"/>
<input type="checkbox" name="id[]">
答案 0 :(得分:0)
如果您想取消设置所有$_POST
值,则不应该取消设置$_POST['processorder']
。
if (isset($_SESSION['id']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
// to unset processorder
unset($_POST['processorder']);
var_dump($_POST);
// To unset all $_POST values
unset($_POST);
var_dump($_POST); // Will return bool(false)
}
答案 1 :(得分:0)
由于您unset($_SESSION['id']);
,if(empty($_SESSION['id']))
将返回TRUE。
发生这种情况是因为if(empty(unset($var)))
将始终返回TRUE。