0

我正在尝试通过 jQuery 和 AJAX 更新数据库条目。我正在检查我发送的值是否正确 - 但我不确定如何检查数据库未更新的原因。

我的代码如下:

$(document).on("click", ".approve", function(){
    var classes = $(this).parents('div:eq(0)'); // this gets the parent classes.
    i = 0;
    var pros = [];
    classes.find(".prosncons .pros ul li").each(function(){
        pros.push($(this).text());
    });
    var cons = [];
    classes.find(".prosncons .cons ul li").each(function(){
        cons.push($(this).text());
    });
    var notes = classes.find(".notes").text();
    var id = classes.find(".id").text();
    var data = "method=approve&pros="+pros+"&cons="+cons+"&notes="+notes+"&id="+id;
    $.ajax({
      type: "POST",
      url: "../scripts/upload.php",
      data: data,
      success: $(this).closest(".approval").remove(),
    });
});

PHP::

if($method == "approve"){
        $sql = "UPDATE `approval` SET approved = 1 WHERE pros=:pros, cons=:cons, notes=:notes, id=:id";
        $statement = $conn->prepare($sql);
        $statement->execute(array(':pros' => $pros, ':cons' => $cons, ':notes' => $notes, ':id'=> $id));
    }
4

2 回答 2

1

您没有以正确的方式将数据发送到 php 文件

用这个改变你的ajax请求:

$.ajax({
      type: "POST",
      url: "../scripts/upload.php",
      data: { method: "approve", pros: pros, cons:cons, note:notes, id:id },
      success: $(this).closest(".approval").remove(),
    });

要将您的变量放入 php 文件中,您可以使用$_POST['var_name'] 在您的 php 中尝试这个来检查method

if($_POST['method'] == "approve"){
        $sql = "UPDATE `approval` SET approved = 1 WHERE pros=:pros, cons=:cons, notes=:notes, id=:id";
        $statement = $conn->prepare($sql);
        $statement->execute(array(':pros' => $_POST['pros'], ':cons' => $_POST['cons'], ':notes' => $_POST['notes'], ':id'=> $_POST['id']));
    }
于 2013-09-12T20:12:54.903 回答
0

您可以检查$conn->error最后一个错误。这应该告诉您是否有错误。

我通常会检查是否有错误,如果有我会返回错误状态,以便我的 JS 代码知道有问题,然后处理它。

于 2013-09-12T20:13:34.777 回答