解决此问题的一种方法是为每个复选框使用隐藏的表单字段。
例如
更换
同
这样你肯定会在你的数组中返回0或1。如果勾选了复选框,则会得到1.否则它将默认为隐藏字段的值 - 0.请注意,这仅在您使用数组的固定索引时才有效。换一种说法
无法工作,因为它会为数组添加两个选项。
更新:添加此内容以进行说明
然后你稍微修改你的php到:
$listvals=$_POST['avail'];
foreach($listvals as $product_id => $available) {
$query_update = "update products set avail=$available where id ='".$product_id."'";
$update = mysql_query($query_update, $connection) or die(mysql_error());
}如果您只查找可用的产品,可能更简单的方法是预先运行另一个sql脚本,将所有内容的可用性设置为0 / false / null - 从根本上使所有产品都不可用,然后重新添加正确的那些。
快速粗略和准备版本:
$listvals=$_POST['avail'];
$n=count($listvals);
/*
* add this
*/
mysql_query('update products set avail = 0');
for($i=0; $i
$avail= ($listvals[$i]<>'' ? 1 : 0);
$query_update = "update products set avail=$avail where id ='".$listvals[$i]."'";
$update = mysql_query($query_update, $connection) or die(mysql_error());
}希望这可以帮助