首页 > 解决方案 > ajax 调用返回 NULL

问题描述

我正在玩 AJAX 调用。我尝试将数据传递给 sql 查询并在我的 JS 文件中接收回数据。不知何故,错误函数总是在 JavaScript 中被调用

而 XHR 标头在预览中返回:Array ( [address] => Street 12 [name] => twelve [id] => 12 [surname] => twelve )

文件 data_3.php

<?php
require 'assets/external/db.php';
$data =  file_get_contents('php://input');
$data = json_decode($data, true);

$id = $data['id'];

$queryData = $mysqli->prepare("
SELECT
    id
FROM
    listing
 WHERE id = ?
");
$queryData->bind_param('s', $id);
$queryData->execute();
$data = $queryData->get_result();

$data = mysqli_fetch_all($data, MYSQLI_ASSOC);
mysqli_close($mysqli);
echo json_encode($data);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript" src="assets/js/json_test.js"></script>

<script>
    var ajaxData = {
        "address": "Street 12",
        "name": "twelve",
        "id": 12,
        "surname": "twelve"
    };
    loadData('assets/external/data_3.php', ajaxData);
</script>

文件 json_test.js

function loadData(url, ajaxData) {
console.log('JS loaded');
$.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(ajaxData),
    async: false,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (results) {
        console.log(results);
    },
    error: function (e) {
        console.log(e);
    }
});
}

如何正确调用 sql 查询,以便填充 $id 并将结果返回到 JS 函数 loadData?

标签: phpjsonajax

解决方案


通过将 sql 部分拆分为新文件解决的问题


推荐阅读