我想更新一個行,我想要一個複選框值更新MySQL中的表字段。我不想使用窗體,因爲我不希望頁面刷新。我粘貼了下面的代碼,這是連續第三天,我被困在這裏。Mysql查詢不更新數據庫與.open請求同時在javascript中使用
<script type="text/javascript">
function chkit(uid, chk, sid) {
chk = (chk==true ? "1" : "0");
var url = "edit_sms_process.php?userid="+uid+"&chkYesNo="+chk+"&sid="+sid+"";
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
// Use get instead of post.
req.open("GET", url, true);
req.onreadystatechange = function() {
if (req.readyState === 4) {
if (req.status === 200) {
console.log(req.responseText);
} else {
console.log("Error", req.statusText);
}
}
};
req.send(null);
}
</script>
我的PHP頁面:
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12"
for="chk_<?php echo $row2['teacher_id']; ?>">SMS Send<span
class="required">*</span>
</label>
<div class="slideThree">
<input type="checkbox"
name="chk"
id="chk_<?php echo $row2['teacher_id']; ?>"
value="chk"
onclick="chkit(<?php echo $row2['teacher_id']; ?>, this.checked, <?php echo $row2['teacher_schoolref_id'] ?>);"
<?php echo ($row2['sms_send'] == 1) ? 'checked="checked"' : ''; ?> />
<label for="chk_<?php echo $row2['teacher_id']; ?>"></label>
Ç
現在鉻控制檯顯示此
edit_sms.php短信= 61:151 XHR加載完成:GET 「http://localhost/cloud_school/cloud_school/dashboard_files/communication/edit_sms_process.php?userid=61&chkYesNo=0&sid=10」.chkit @ edit_sms .PHP短信= 61:??151onclick @ edit_sms.php短信= 61:383 edit_sms.php短信= 61:143 10success
// Get the variables.
$userid = $_GET['userid'];
$chkYesNo = $_GET['chkYesNo'];
$schoolcid= $_GET['sid'];
$sql = "UPDATE teachers SET sms_send = $chkYesNo WHERE teacher_id = $userid AND teacher_schoolref_code = $schoolcid";
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
if($result==1) {
echo $result;
echo $chkYesNo;
echo "success";
}
Eventhough控制檯顯示爲成功,該數據庫是不會得到更新。爲了簡單起見,我在php頁面中包含了db連接字符串,並沒有添加。
任何幫助將非常感謝!
顯示更新代碼在這裏 – dod29
包裝這個代碼用'isset($ _ GET)&&!空($ _ GET)'做'的print_r($ _ GET)' – dod29