Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的ajax查询不起作用,但如果我将数据直接放入php代码中,它就起作用了?_Php_Ajax - Fatal编程技术网

为什么我的ajax查询不起作用,但如果我将数据直接放入php代码中,它就起作用了?

为什么我的ajax查询不起作用,但如果我将数据直接放入php代码中,它就起作用了?,php,ajax,Php,Ajax,为什么我的ajax查询不起作用,但如果我将数据直接放入php代码中,它就起作用了? 如何查看php从ajax接收到的内容 这不起作用: function calculprix(callback) { $.ajax({ url: 'getinfo.php', type: 'POST', data: { id: JSON.st

为什么我的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);
                }
            })
        };
$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);
这是ajax发送到getinfo.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);

getinfo.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代码中,它会起作用:

        function calculprix(callback) {
            $.ajax({
                url: 'getinfo.php',
                type: 'POST',
                data: {
                    id: JSON.stringify(idarr)
                },
                dataType: 'json',
                success: function(callback) {
                    console.log(callback);
                }
            })
        };
$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);

您正在将其作为字符串发送。所以首先需要将其解码为php数组/对象。 在您的例子中,使用
$data=json_decode($_POST['id'])
比如说

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

另外,如果您希望将其作为关联数组,则使用
json\u decode($data,true)

foreach
内部,您可以执行许多查询以按id获取数据。您可以通过使用
…其中id位于(1,2,3)
运行一个查询来优化它,这样,无论您有多少id,查询只执行一次。