wordpress - $wpdb 更新多个复选框
问题描述
我尝试更新 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:如果我使用“文本”而不是“复选框”,效果很好
解决方案
请从复选框输入字段中删除值并尝试以下一个。
<input type="checkbox" name="dept_status[]" <?php echo ($dep['dept_status']==1 ? 'checked' : '');?>>
推荐阅读
- javascript - 从 ArcGIS Archade 脚本进行 API 调用
- azure-ad-b2c - 在 SubJourney 中执行时来自 SAML TechnicalProfile 的错误“80131515:Web.TPEngine.Providers.RestfulProvider 不支持 ValidateAsync”
- json - 使用 docker 内的 JQ 在 JSON 中映射环境变量
- apache-spark - 考拉中不同类型的默认索引选择
- c# - 死锁可能是由实体框架的页面锁引起的
- flutter - 使用 Hydrated Bloc 版本 5 及更高版本的持久状态
- .htaccess - .htaccess P flag gets redirected
- java - 如何在 Java 中正确执行线程回调?
- javascript - 如何使用 javascript 中的 split 函数拆分值以拆分仅检查第一次和最后一次出现
- javascript - 无法在反应原生 ios 中关闭单个视图