成功的AJAX调用工作PHP脚本什么都不返回

时间:2016-12-25 04:37:13

标签: javascript php jquery mysql ajax

我正在运行一个应该将用户ID号发送到数据库的脚本。数据库从具有匹配用户ID的任何行中获取一堆图像ID,然后转到另一个表并获取与图像ID匹配的图像URL。然后它返回URL。

PHP脚本可以自行运行,它会根据请求以直接文本或JSON格式返回正确的URL。

对于jQuery,AJAX调用确实可以获得成功函数,因为我可以要求它记录。在那里写一些东西,它会做到。但是,当我要求它打印出数据时,AJAX调用会永远运行(我认为它会反复调用成功函数?基于浏览器告诉我它正在等待或重复传输数据)。无论如何,尽管有重复的脚本,屏幕上仍然没有任何内容。

哦,也没有错误返回到控制台。

我不确定为什么会这样做,所以我在这里。我在这里浏览了其他帖子并随机浏览了互联网,没有运气。任何帮助表示赞赏!

这是PHP:

<?php
header('Content-type: text/plain; charset=utf-8');
// define variables and set to empty values
$servername = "localhost";
$username = "root";
$password = "Wolf*6262";
$dbname = "Game";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

if ($_SERVER["REQUEST_METHOD"] == "GET") {
  $id = $_GET["id"];
}

$query1 = mysqli_query($conn, "SELECT imageids FROM users WHERE id = $id");

// Start user session
if ($imageIds = mysqli_fetch_array($query1)) {
    fetchUrls($imageIds, $conn);
} else {
    echo "Fail";
}

function fetchUrls($imageIds, $conn) {
    $query2 = mysqli_query($conn, "SELECT url FROM charimages WHERE id = '1'");
    $array = mysqli_fetch_assoc($query2);
    $url = $array["url"];
    exit($url);
}

$conn->close();

jQuery:

function getUrls (userId) {
    $.ajax({
        type: 'GET',
        data: {id:userId},
        URL: 'fetchChar.php',
        async: false,
        dataType: 'text',
        success: function (data) {
            document.write(data);
            document.write(userId);
        }
    });
}

Aaand在这里定义userId并调用getUrls,它位于一个单独的HTML文件中:

var userId = <?php echo $_SESSION["id"]; ?>;
$(document).ready(getUrls(userId));

2 个答案:

答案 0 :(得分:0)

你可以修改你的脚本:作为标准方式,更喜欢jQuery: 1.将URL更改为url 2.请避免async定义 喜欢这个

$.ajax({
    type: 'GET',
    data:{ id: userId },
    url: 'fetchChar.php',
    // async: false,
    dataType: 'text',
    success: function (data) {
        console.log(data);
        //document.write(data);
        //document.write(userId);
    }

});

我添加了控制台日志以显示返回数据,以便您可以使用控制台日志确保数据从fetchChar.php文件正确返回。

答案 1 :(得分:0)

结束以下操作,问题解决了:

Javascript文件:

function fetchUrls($imageIds, $conn) {
    $query2 = mysqli_query($conn, "SELECT url FROM charimages WHERE id = 1");
    $array = mysqli_fetch_assoc($query2);
    $url = $array['url'];
    $url = json_encode($url);
    echo $url;
    exit();
}

PHP文件,接近结尾:

.podspec