我是AJAX领域的全新品牌。我有一个Mysql数据库,其中包含一个填充了URL的列。我的最终目标是通过点击事件从数据库加载具有唯一URL的iframe。如果有人有更好的方法,请让我知道。我的AJAX代码有什么问题
现在,但我只是试图找出如何通过尝试检索URL的AJAX工作。我附上了我的Javascript代码和我的PHP代码。
PHP代码的确输出了json编码的数据副本。但是,javascript会将变量结果报告为未定义。我认为这可能与AJAX的“异步”方面有关,但我遵循本教程试图使代码正确工作。我感谢任何可以提供的帮助。
How do I return the response from an asynchronous call?
这里是我的代码Javascript代码,它记录的结果是不确定的,“我做到了”到控制台
function retrieve_callback(result) {
console.log (result);
console.log("I made it!");
};
function retrieveURL (retrieve_callback) {
$.getJSON({
url: './fetch.php',
dataType: 'json',
success: retrieve_callback
});
}
//Runs when our document initializes
$(document).ready(function() {
retrieveURL(retrieve_callback());
});
这是我的PHP代码,它输出的URL
的JSON数组<?php
//--------------------------------------------------------------------------
// Connect to mysql database (I've removed the info from this example but it works)
//--------------------------------------------------------------------------
$db = new mysqli($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_NAME);
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
//--------------------------------------------------------------------------
// Query mysql database
//--------------------------------------------------------------------------
$links = array();
//SQl query
$sql = <<<SQL
SELECT `Gnews_url`
FROM `Gnews_RSS`
SQL;
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
array_push($links, $row);
}
echo json_encode($links);
谢谢哟但是,这却带来了一个新问题。我的请求不是调用成功函数。我添加了一个错误返回来调试它,但它也不输出任何信息。这似乎是要求挂起。再次感谢大家的帮助。 – Jesse
完全可能你的PHP搞乱了某个地方,我不太熟悉它。成功后添加'失败:retrieve_callback',看看是否被触发。 –
我添加了一个失败函数来做alert(“我搞砸了”)和console.log(“我搞砸了”)。仍然没有成功,错误或失败功能的输出。 – Jesse