簡體   English   中英

在有效的PHP腳本上成功進行AJAX調用不會返回任何內容

[英]Successful AJAX call on working PHP script returns nothing

我正在運行一個腳本,該腳本應該將用戶ID號發送到數據庫。 數據庫從具有匹配用戶ID的任何行中獲取一堆圖像ID,然后轉到另一個表並獲取與圖像ID匹配的圖像URL。 然后,它返回URL。

PHP腳本本身運行良好,可以根據要求以純文本或JSON返回正確的URL。

至於jQuery,AJAX調用確實可以訪問成功函數,因為我可以要求它進行document.write在其中,然后它將執行該操作。 但是,當我要求它打印數據時,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);
        }
    });
}

我在這里定義userId並調用getUrls,它在一個單獨的HTML文件中:

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

能否請您修改腳本:作為標准的方式從什么jQuery的偏愛:1.更改URLurl 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文件正確返回數據。

最終做了以下工作,問題解決了:

Javascript文件:

$.ajax({
    type: "POST",
   dataType: "json",
   url: "fetchChar.php",
   data: {id:userId},
   success: function(data) {
    document.write(JSON.stringify(data));
   }
});

PHP文件,接近結尾:

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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM