猿问

从mysql数据库获取数据并使用ajax再次保存

我正在尝试将从API. 事实上,我从 API 获取了我网站上销售的产品的销售数量,我想通过ajax. 问题是我对 Javascript 总体来说仍然有很多麻烦。这就是我所做的。


我创建了第一个文件来使用ajax保存数据(我认为这肯定是问题所在,哈哈)。


//script.js


function saving_data()

    {

        $.ajax({

            url:"fetch.php",

            method:"POST",

            data : data,

            dataType : 'json',

            success : function (stats) {

                jQuery.each(stats, function(i, val) {

                    var action = 'action';

                    var id = val["id"];

                    var sales = val["quantite"];

                    $.ajax({

                    url:"save.php",

                    method:"POST",

                    data:{action:action, id:id, sales:sales}

                    });

                });

            },

            error : function () {

            alert("error");

            }

        });

    };

    

    saving_data();

        

    setInterval(function(){

        saving_data();

    }, 5000);

然后我创建了第二个文件,允许我从数据库中获取产品。


//fetch.php


$pdo = Connexion::getPDO(); // a PDO instance


$sql = $pdo->query("SELECT * FROM products ORDER BY date DESC");

$beats = $sql->fetchAll(PDO::FETCH_ASSOC);

$stats = [];


foreach ($products as $key => $product) {

    $salesstats = $api->sales(api-request);

    $stats[$key] = [

        "id" => $product["id"],

        "quantity" => $salesstats["quantity"], //get from api

        "amount" => $salesstats["amount"] // get from api

    ];

}


echo json_encode($stats);

最后我创建了一个 javascript 文件,它应该允许我将数据保存在我的数据库中。


//save.php


$pdo = Connexion::getPDO(); // a PDO instance


if(isset($_POST['action'])){


    $bId = $_POST["id"];

    $bSales = $_POST["sales"];

    $update_query = "UPDATE products SET sales = '$bSales' WHERE id = '$bId'";

    $pdo->query($update_query);


}

当然,这是行不通的。数据库未更新。但我无法弄清楚出了什么问题。有人可以帮帮我吗?


谢谢。


慕尼黑5688855
浏览 76回答 1
1回答

开满天机

问题出在Ajax脚本上。我指定了一个未定义的数据参数。我认为有必要放置它,以便 Ajax 通过 URL 参数文件获取它,但是没有,没有必要放置任何东西。为了检查错误,我在浏览器的调试器中调试了代码,在ajax请求上使用断点方法。第一个确实停止了代码,但第二个则没有。Firefox 调试器清楚地向我显示了未定义的数据参数(Chrome 没有这样做)。所以我删除了它,一切正常。
随时随地看视频慕课网APP
我要回答