我可以显示来自SQL查询的复选框值,但我无法更新它们,我只能更新取消勾选值(0值),如果我取消选中复选框,它可以将取消勾选值0保存到SQL表中。如果我重新选中该复选框,则无法更新 SQL 查询中的值。我使用 int 作为数据类型。下面是来自我的测试系统的示例代码:复选框:<div class="form-group col-lg-6"><label class="control-label col-lg-4">Pricing<span style="color:red;"> </span></label><div class="col-lg-8"> <input type="checkbox" name="rm_option" id="rm_option" value="1"><strong> RM </strong></input> <input type="checkbox" name="point_option" id="point_option" value="1"><strong> Full Point </strong></input> <input type="checkbox" name="partial_option" id="partial_option" value="1"><strong> Partial Point + RM </strong></input></div></div>复选框回声编辑功能:<?php$sql = "select * from promotion_list where id=" . $_GET['id'];$arr_sql = db_conn_select($sql);foreach ($arr_sql as $rs_sql) { foreach ($rs_sql as $key => $value) { ?> $("#<?php echo $key ?>").val("<?php echo $value ?>"); <?php if($value == 1){ ?>$("#<?php echo $key ?>").attr("checked", true).prop("checked", true);<?php } ?> <?php } ?> $("#filter_id").val('<?php echo $rs_sql['id'] ?>'); $("#promotion_content").jqteVal('<?php echo $rs_sql['promotion_content'] ?>'); $("#promotion_terms").jqteVal('<?php echo $rs_sql['promotion_terms'] ?>'); $("#promotion_instruction").jqteVal('<?php echo $rs_sql['promotion_instruction'] ?>'); $("#promotion_policy").jqteVal('<?php echo $rs_sql['promotion_policy'] ?>'); <?php}?>
1 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
对于复选框,如果选中该复选框,则数组元素存在(并且 = 1),否则它不存在。所以改变$_POST
$rm_option = isset($_POST['rm_option']) ? $_POST['rm_option'] : "";
$point_option = isset($_POST['point_option']) ? $_POST['point_option'] : "";
$partial_option = isset($_POST['partial_option']) ? $_POST['partial_option'] : "";
自
$rm_option = isset($_POST['rm_option']) ? 1 : 0;
$point_option = isset($_POST['point_option']) ? 1 : 0;
$partial_option = isset($_POST['partial_option']) ? 1 : 0;
并且您也应该能够更新0值。请注意,如@SergheiLeonenco所说,由于这些是数值,因此在查询中不需要用引号将它们括起来。
强制 SQL 注入注释。
由于您直接在查询中使用值,因此容易受到 SQL 注入的攻击。您应该阅读如何在PHP中防止SQL注入,并转到准备好的语句以保护自己。$_POST
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消