Javascript 使用AJAX从PHP函数获取JSON数据
我想使用AJAX将来自php函数的数据发送到我的HTML页面,我的函数如下所示:Javascript 使用AJAX从PHP函数获取JSON数据,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我想使用AJAX将来自php函数的数据发送到我的HTML页面,我的函数如下所示: function getFeed() { $url = 'http://feeds.bbci.co.uk/news/rss.xml?edition=int#'; $content = file_get_contents($url); $data = simplexml_load_string($content); $articles= arr
function getFeed() {
$url = 'http://feeds.bbci.co.uk/news/rss.xml?edition=int#';
$content = file_get_contents($url);
$data = simplexml_load_string($content);
$articles= array();
foreach( $data->channel->item as $item){
$articles[]=array(
'title' => (string)$item->title,
'description' => (string)$item->description,
'link' => (string)$item->link,
'Date' => (string)$item->pubDate,
);
}
foreach($articles as $article){
echo json_encode($article['title']);
}
}
我的javascript脚本如下所示:
$(function(){
$.ajax({
type:'GET',
url: '/rss/core/inc/rssnews.inc.php',
success: function (data){
console.log('success',data);
}
});
});
执行代码后,控制台中会显示一条“success”
消息,但不会显示数据。
那么,在这种情况下,如何获取JSON数据呢 像这样更改脚本
$(function(){
$.ajax({
type:'GET',
url: '/rss/core/inc/rssnews.inc.php?function=getFeed',
success: function (data){
console.log('success',data);
}
});
});
在“rssnews.inc.php”文件中编写以下代码
if(isset($_GET['function']) && $_GET['function'] !=''){
$result = $_GET['function']();
echo json_encode($result);
}
function getFeed() {
$url = 'http://feeds.bbci.co.uk/news/rss.xml?edition=int#';
$content = file_get_contents($url);
$data = simplexml_load_string($content);
$articles= array();
foreach( $data->channel->item as $item){
$articles[]=array(
'title' => (string)$item->title,
'description' => (string)$item->description,
'link' => (string)$item->link,
'Date' => (string)$item->pubDate,
);
}
$articalesArr = array();
foreach($articles as $article){
array_push($articalesArr, $article['title']);
}
return $articalesArr;
}
像这样修改脚本
$(function(){
$.ajax({
type:'GET',
url: '/rss/core/inc/rssnews.inc.php?function=getFeed',
success: function (data){
console.log('success',data);
}
});
});
在“rssnews.inc.php”文件中编写以下代码
if(isset($_GET['function']) && $_GET['function'] !=''){
$result = $_GET['function']();
echo json_encode($result);
}
function getFeed() {
$url = 'http://feeds.bbci.co.uk/news/rss.xml?edition=int#';
$content = file_get_contents($url);
$data = simplexml_load_string($content);
$articles= array();
foreach( $data->channel->item as $item){
$articles[]=array(
'title' => (string)$item->title,
'description' => (string)$item->description,
'link' => (string)$item->link,
'Date' => (string)$item->pubDate,
);
}
$articalesArr = array();
foreach($articles as $article){
array_push($articalesArr, $article['title']);
}
return $articalesArr;
}
您的javascript函数应该如下所示
$(函数(){
$.ajax({
类型:'GET',
url:“/rss/core/inc/rssnews.inc.php”,
成功:功能(数据){
对于(var i=0;i
您的javascript函数应该如下所示
$(函数(){
$.ajax({
类型:'GET',
url:“/rss/core/inc/rssnews.inc.php”,
成功:功能(数据){
对于(var i=0;i如果您想查看方法[getFeed]中的所有JSON数据,您可以返回值,而不是回显它
function getFeed() {
$url = 'http://feeds.bbci.co.uk/news/rss.xml?edition=int#';
$content = file_get_contents($url);
$data = simplexml_load_string($content);
$articles= array();
foreach($data->channel->item as $item) {
$articles[]=array(
'title' => (string)$item->title,
'description' => (string)$item->description,
'link' => (string)$item->link,
'Date' => (string)$item->pubDate,
);
}
return json_encode($articles);
}
然后在JS中,可以使用$.parseJSON查看结果
$.ajax({
type:'GET',
url: '/rss/core/inc/rssnews.inc.php',
success: function (data) {
var oJsonResponse = $.parseJSON(data);
console.log(oJsonResponse);
}
});
您将得到如下结果:
希望这对您有所帮助如果您想查看方法[getFeed]中的所有JSON数据,您可以返回值,而不是回显它
function getFeed() {
$url = 'http://feeds.bbci.co.uk/news/rss.xml?edition=int#';
$content = file_get_contents($url);
$data = simplexml_load_string($content);
$articles= array();
foreach($data->channel->item as $item) {
$articles[]=array(
'title' => (string)$item->title,
'description' => (string)$item->description,
'link' => (string)$item->link,
'Date' => (string)$item->pubDate,
);
}
return json_encode($articles);
}
然后在JS中,可以使用$.parseJSON查看结果
$.ajax({
type:'GET',
url: '/rss/core/inc/rssnews.inc.php',
success: function (data) {
var oJsonResponse = $.parseJSON(data);
console.log(oJsonResponse);
}
});
您将得到如下结果:
希望这对您有所帮助您确定在定义之后要调用getFeed
吗?不需要对每个项目进行编码。只需json_encode($articles)
@HassanAhmed我不叫它,如果您调用“/rss/core/inc/rssnews.inc.php”,我该如何在我的javascript脚本中做在你的浏览器中,你能得到想要的结果吗?你不能,你必须从你的服务器端调用它,换句话说,从你的php文件中调用它。你确定你在定义它之后调用了getFeed
?没有必要对每一项进行编码。只要json\u encode($articles)
@HassanAhmed我不叫它,如果你叫它“/rss/core/inc/rssnews.inc.php”,我该如何在我的javascript脚本中做呢在你的浏览器中,你能得到想要的结果吗?你不能,你必须从你的服务器端调用它,换言之,从你的php文件中调用。谢谢。我想知道如何调用函数以及在哪里?非常感谢,这真的很有效,如果可以的话,请告诉我发生了什么谢谢。我想知道如何调用函数在哪里呢?非常感谢这是真正的工作,如果可以的话,请向我解释一下发生了什么谢谢。我得到以下错误:未捕获的语法错误:JSON.parse()处的JSON输入意外结束,Function.n.parseJSON(jquery.min.js:4)处的Object.success(test.php:33)处的I(jquery.min.js:2)处的Object.firwith[resolveWith](jquery.min.js:2)在y(jquery.min.js:4)在XMLHttpRequest.c(jquery.min.js:4)你有没有尝试先控制台{data}?并确保你已经使用PHP中的“return json_encode($articles);”返回了所有数据。谢谢。我得到以下错误:Uncaught SyntaxError:json.parse()的json输入意外结束在Function.n.parseJSON(jquery.min.js:4)在Object.success(test.php:33)在i(jquery.min.js:2)在Object.fireWith[as resolved with](jquery.min.js:2)在y(jquery.min.js:4)在XMLHttpRequest.c(jquery.min.js:4)在y(jquery.min.js.js:4)你有没有尝试先控制台{data}并确保你已经使用“return json\u encode”返回了所有的数据($articles);“来自PHP。