我尝试更新wordpress中包含复选框的多行(如果选中1否则为0),但无法正常工作。我有3行:
+---------+-----------+-------------+
| dept_id | dept_name | dept_status |
+---------+-----------+-------------+
| 1 | Services | 1 |
| 2 | Products | 0 |
| 3 | Users | 0 |
+---------+-----------+-------------+
如果我想通过选中复选框状态来激活部门users
,那么它将为产品写入1,这是错误的。另一个例子:如果我们都拥有dept_status 0并尝试更新产品,那么它将影响服务。我无法弄清楚..我的代码有什么问题...
这是我的代码:
if ( isset( $_POST['update'] ) ){
...
for ($i=1; $i<$deps_var; $i++) {
$updatedeps=array(
'dept_name' => $_POST['dept_name'][$i],
'dept_status' => isset($_POST['dept_status'][$i]) ? 1 : 0
) ;
$where=array('dept_id' => $_POST['dept_id'][$i]);
$wpdb->update( $departments, $updatedeps, $where);
}
...
}
和表格:
<tr>
<input name="dept_id[]" type="hidden" value="<?php echo $dep['dept_id'] ?>" class="small-text">
<td><input name="dept_name[]" type="text" value="<?php echo $dep['dept_name'] ?>" class="form-control"></td>
<td><input type="checkbox" name="dept_status[]" value="<?php echo $dep['dept_status']; ?>" <?php echo ($dep['dept_status']==1 ? 'checked' : '');?>></td>
</tr>
任何帮助将不胜感激!
PS:如果我使用“文本”而不是“复选框”,效果很好
答案 0 :(得分:0)
请从复选框输入字段中删除值,然后尝试以下一项。
<input type="checkbox" name="dept_status[]" <?php echo ($dep['dept_status']==1 ? 'checked' : '');?>>