[英]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.更改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
文件正确返回数据。
最终做了以下工作,问题解决了:
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.