Mysql查询不更新数据库与.open请求,而在javascript中使用

Mysql query not updating db with .open request while using in javascript

本文关键字:而在 javascript 请求 open 查询 更新 数据库 Mysql      更新时间:2023-09-26

我正在尝试更新一行,我想要一个复选框值来更新mysql中的表字段。我不想使用表单,因为我不想让页面刷新。我已经粘贴了下面的代码,这是连续第三天,我被困在这里。

 <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>

c

现在chrome控制台显示这个

edit_sms.php吗?sms=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:383edit_sms.php吗?成功短信= 61:143 10

// 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";
}

尽管控制台显示为成功,但db没有得到更新。我已经在php页面中包含了db连接字符串,为了简单起见,这里没有添加。

任何帮助将非常非常感激!!

在dod29的帮助下,我能够解决这个问题。我在第二个实例更改中使用了错误的列名,解决了这个问题。Thank you dod29