【发布时间】:2015-10-09 13:54:03
【问题描述】:
我有一个多选表单,它具有 MySQL 表列名称作为动态选项。
<select id="rankRights" size="10" class="form-control" name="rights[]" multiple>
<?php
$sql = $pdo->query("SELECT * FROM ranks");
$rights = $sql->fetch(PDO::FETCH_ASSOC);
foreach($rights as $key => $value) {
if($key != 'Name' || $key != 'Id') {
echo "<option value=\"".$key."\"";
if($result[$key] == '1') {
echo " selected";
}
echo "> " . $key . "</option>";
}
}
?>
</select>
在表中,用户权限为列,值为 1 或 0(表示真或假,示例如下)。可以有任意数量的列。
.------------------------------------------------ -------------------------------------------。 |身份证 |姓名 |管理员 |管理员编辑用户 |管理员删除用户 |等| '---------------------------------------------------- -------------------------------------------' | 1 |管理员 | 1 | 1 | 1 | ... | | 2 |默认 | 0 | 0 | 0 | ... | '---------------------------------------------------- -------------------------------------------'如果用户在多项选择中选择了列名,我想要做的是将值更新为 1,反之亦然。我怎样才能将这些发布到 PDO 查询..
编辑:因此,如果我提交表单(例如从多项选择中选择了 ADMIN 和 ADMIN_EDITUSER),我将获得像 rights[]=ADMIN 和 rights[]=ADMIN_EDITUSER 这样的 POST 参数 - > 在这种情况下,我想将 ADMIN 和 ADMIN_EDITUSER 列的值更新为 1,所有其他列(未选择的选项)的值更新为 0。
我已经阅读了以下问题并思考了一些问题,但我什至现在都不知道该怎么做。
【问题讨论】:
-
这个问题的信息有点少。能分享一下你尝试过的,遇到了什么问题吗?
-
取决于你想如何更新你的数据库,你想提交你的表单还是你想更新它,而不刷新你的页面?
-
你的意思是AJAX结合javascript监听器吗?
-
使用
WHERE子句。 -
@PHPhil,我想通过页面刷新正常汇总表单。 Javascript 与此无关。
标签: php mysql forms pdo foreach