【发布时间】:2018-09-02 07:11:39
【问题描述】:
问题陈述:
- 我有一个包含多个复选框字段的表单,我已经对其进行了验证 用户可以使用 jquery 选择最多 9 个复选框和至少 1 个复选框。
- 我使用 Post 方法收集表单检查值。
前 3 列是“id”、“rollnum”、“selectStatus”
通过登录期间创建的会话变量,我得到学生的卷号。所以我可以在特定行上运行更新查询。
问题:我如何根据用户检查的输入更新这 9 个主题列。注意:我将这些检查的输入字段值存储在一个数组中。
-
代码
<form action="index.php" id="form-3" method="post"> <input class="form-check-input" name="year-3-checkbox[]" type="checkbox" value="ucs303">UCS303 Operating Systems <input class="form-check-input" name="year-3-checkbox[]" type="checkbox" value="ucs406">UCS406 Data Structures and Algorithms <input class="form-check-input" name="year-3-checkbox[]" type="checkbox" value="uec401">UEC401 Analog Communication Systems <input class="form-check-input" name="year-3-checkbox[]" type="checkbox" value="uec612">UEC612 Digital System Design <input class="form-check-input" name="year-3-checkbox[]" type="checkbox" value="uec307">UEC307 Electromagnetic Field Theory & Trans Lines <input class="form-check-input" name="year-3-checkbox[]" type="checkbox" value="uec502">UEC502 Digital Signal Processing <input class="form-check-input" name="year-3-checkbox[]" type="checkbox" value="uec510">UEC510 Computer Architecture <button type="submit" name="year-3-submit">Submit Selection</button> </form> <?php if(isset($_POST['year-3-submit'])){ if(!empty($_POST['year-3-checkbox'])){ $subjectCheckList = array(); $subjectCheckList = $_POST['year-3-checkbox']; } } ?> 这取决于用户选择了多少复选框。
- 我不知道如何编写更新列数的值 == 数组大小的 UPDATE sql 查询。
例如: 用户 1 选择了 3 个复选框并提交了表单,我们有大小为 3 的数组和更新表的 3 列。 用户 1 选中了 6 个复选框并提交了表单,我们有大小为 6 的数组和 UPDATE 6 列的表。
- 我不想为所有可能的大小编写 9 个 switch case 语句 的数组。任何想法?请?
【问题讨论】:
-
简单地遍历数组并通过连接 sql 字符串使用循环准备更新查询
-
@MadhurBhaiya ,如果您与示例代码/sn-p 交谈会很有帮助。
-
例如:
$sql = "Update table SET "; foreach ($post_values as $post) { $sql .= $post['field'] . " = " . $post['value']; } -
另外,请提供您为其中一种情况创建的查询,我将对其进行修改以使其通用
-
好的,不用担心。我很快就会给出答案。
标签: php mysql sql sql-update checkboxlist