目的是有一个复选框,如果点击,将通过post发送我将更新数据库。用户可以来回检查以设置或取消设置活动状态。
这非常有效:
<form name='form".$value['id']."' action='./filter_edit.php' method='post'><input type='checkbox' name='checkbox[".$value['id']."]' value='".$newActive."' onclick='document.form".$value['id'].".submit();' /></form>
但是,使用上面的代码,该框永远不会出现。
使用下面的代码,一旦将字段设置为活动,将选中该框,单击以取消选中该框确实提交但不发送任何帖子变量。
<form name='form".$value['id']."' action='./filter_edit.php' method='post'><input type='checkbox' name='checkbox[".$value['id']."]' value='".$newActive."'";
if($value['active'] == 1)
echo " checked='checked'";
echo" onclick='document.form".$value['id'].".submit();' /></form>
答案 0 :(得分:2)
未选中的复选框不会在帖子参数中发送任何内容。
你必须在服务器上执行该逻辑:检查post变量,如果它不存在,那么你知道它是未选中的。
答案 1 :(得分:1)
找到了我的问题的解决方案。基本上我没有使用复选框来传递变量,而是仅使用复选框进行显示(被检查与否),然后使用隐藏字段传递值。
答案 2 :(得分:1)
我猜测问题是Javascript在之前处理项目本身被“点击”(如果这样做有意义):也就是说,表单是在复选框之前提交的实际上已经检查过了。
如果您在运行提交之前将复选框标记为已在Javascript中选中,我猜这可行。
答案 3 :(得分:0)
变化: 值= ' “$ newActive。”'
只是: “$ newActive。”
我假设$ newActive是=“选中”或“”以确定是否选中了复选框。