我可以顯示來自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 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消