douchao0358 2017-02-25 21:29
浏览 202
已采纳

使用post()更新数据库

I am working on a calendar where the background color of the day cells can be changed by the administrator. The change gets saved to the server. Right now, it's not working. Here's a portion of the JavaScript:

for(i=0; i<myDays.length; i++) { // Goes through each TD and creates a click event
myDays[i].addEventListener("click", function(){
    if(this.classList.contains("avail")) {
        this.classList.toggle("avail");
        this.classList.toggle("halfy");
        $.post("classChange.php", { dID: this.id, dClass: "halfy" } );
    }

This is the PHP code in classChange.php:

    if(isset($_POST["dID"]) ){
    $stmt = $db->prepare("UPDATE original SET class=? WHERE id=?");
    $stmt->bind_param("ss", $dClass, $dID);

    $dID = $_POST["dID"];
    $dClass = $_POST["dClass"];

    $stmt->execute();
    $stmt->close();
} else {
    echo "Code error, dummy!";
}

Clicking on a cell correctly changes the class (and color) of the cell, but does not update the database. I'm not getting any errors. I think it must be a problem with the post() code, or the PHP code. Any advice?

  • 写回答

1条回答 默认 最新

  • dongmu1390 2017-02-25 21:37
    关注

    You need to define the variables first before using them.

    $dID = $_POST["dID"];
    $dClass = $_POST["dClass"];
    $stmt = $db->prepare("UPDATE original SET class=? WHERE id=?");
    $stmt->bind_param("ss", $dClass, $dID);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?