首页 > 解决方案 > 为什么我的 ajax 查询不起作用,但如果我将数据直接放入 php 代码中它会起作用?

问题描述

为什么我的 ajax 查询不起作用,但如果我将数据直接放入 php 代码中它会起作用?我怎样才能看到 php 从 ajax 收到什么?

这不起作用:

        function calculprix(callback) {
            $.ajax({
                url: 'getinfo.php',
                type: 'POST',
                data: {
                    id: JSON.stringify(idarr)
                },
                dataType: 'json',
                success: function(callback) {
                    console.log(callback);
                }
            })
        };

这是 ajax 发送到 getinfo.php 的内容:

ajax 发送这个

获取信息.php:

$data = $_POST['id'];
foreach ($data as &$value) {
    $sql = 'SELECT id, prix, remise FROM produitsav WHERE id =' . $value; 
    $reponse = $bdd->query($sql); 
    $donnees = $reponse->fetch();
    $row = array($donnees['id'],$donnees['prix'],$donnees['remise']);
    $result[] = $row;
}   
echo json_encode($result);

但是,如果我将数据直接放入 php 代码中,它可以工作:

$data = ["13","920"];
foreach ($data as &$value) {
    $sql = 'SELECT id, prix, remise FROM produitsav WHERE id =' . $value; 
    $reponse = $bdd->query($sql); 
    $donnees = $reponse->fetch();
    $row = array($donnees['id'],$donnees['prix'],$donnees['remise']);
    $result[] = $row;
}   
echo json_encode($result);

标签: phpajax

解决方案


您将其作为字符串发送。所以你需要先将它解码为 php 数组/对象。在您的情况下$data = json_decode($_POST['id']); ,例如使用

$data = '["13", "920"]';
$data = json_decode($data);
print_r($data);

另外,如果您希望它作为关联数组,请使用json_decode($data, true);


推荐阅读