javascript - ajax 报告成功但数据库没有任何变化

标签 javascript php jquery mysql ajax

首先,感谢您的阅读。这是我的代码

脚本/complete_backorder.php

<?php

if(!isset($_GET['order_id'])) {
    exit();
} else {

    $db = new PDO("CONNECTION INFO");

    $order = $db->prepare("UPDATE `scs_order` SET `order_complete`= 1 WHERE `order_id` = :var");

    $order->bindValue( ':var',$_GET['order_id'] );

 if ( $order->execute() ) {
        echo "DONE";
    };
};

?>

js/tabs.js

/*
[#]===============================================================================[#]
MODAL: "complete_backorder_Modal"
USAGE: modal to confirm whether or not user want to complete a backorder.
[#]===============================================================================[#]
*/

$(function(){

    $(" .remove_record ").click(function( event ){
        event.preventDefault();

        var rows = $(this).parent().parent().parent().parent().find("tr:last").index() + 1;
        var order = $(this).attr("href");

        var dataString = 'order_id='+order;

        $( '#complete_backorder_Modal' ).modal({
            keyboard: false,
            backdrop: 'static'
        });

        $( '#complete_backorder_Modal #modal-yes' ).click(function(e){
            $.ajax({
                type: "POST",
                url: "../scripts/complete_backorder.php",
                data: dataString,
                success:  function(data){
                alert("Settings has been updated successfully.");
                }
            });
        });


    });

});

所以我知道 php 代码正在工作,因为我手动测试了一遍又一遍。但是当我单击“.remove_record”按钮时,模式会显示,然后我单击模式中的"is"按钮,警报框会显示,表示已成功,但当我查看数据库时,没有任何变化。

有什么想法吗?

最佳答案

你的SQL永远不会运行,因为没有$_GET变量,你正在使用$_POST,但即使你这样做了,你也没有正确传递order_id。变化:

var postData = {'order_id ' : order}; // instead of  var dataString = 'order_id='+order;

还有

$.ajax({
        type: "POST",
        url: "../scripts/complete_backorder.php",
        data: postData, // instead of dataString
        success:  function(data){
            alert("Settings has been updated successfully.");
        }
 });

在 PHP 更改中:

if(!isset($_POST['order_id'])) { // Insetad of $_GET

还有

$order->bindValue( ':var',$_POST['order_id'] );

关于javascript - ajax 报告成功但数据库没有任何变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28925728/

相关文章:

javascript - 带有数据的 Chartist.js 数组

PHP-MySQL 标记

javascript - 与这些 javascript DOM 对象/方法等效的 jQuery 是什么?

Jquery获取h2标签的值

javascript - KnockoutJS - 绑定(bind)不会使用映射插件更新

javascript - JS正则表达式在括号前添加一些内容

javascript - 构建完Vuejs项目后是否可以确定角色?

javascript add(push) 数组,在自动循环内包含多个数据

php - 为什么在 PHP 中禁用 E_WARNING 被认为是不好的做法?

php - paypal sdk 'Class ' PayPal\Rest\ApiContext'未找到'