为了账号安全,请及时绑定邮箱和手机立即绑定

更新 SQL 表中的复选框值

更新 SQL 表中的复选框值

PHP
潇湘沐 2022-09-17 15:24:58
我可以显示来自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;">&nbsp;</span></label><div class="col-lg-8">    <input type="checkbox" name="rm_option" id="rm_option" value="1"><strong> RM </strong></input>&nbsp;&nbsp;&nbsp;    <input type="checkbox" name="point_option" id="point_option" value="1"><strong> Full Point </strong></input>&nbsp;&nbsp;&nbsp;    <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


查看完整回答
反对 回复 2022-09-17
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信