我想使用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= 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数据呢?
答案 0 :(得分:2)
像这样改变剧本
$(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;
}
答案 1 :(得分:1)
如果要查看方法[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);
}
});
你会得到这样的结果:
希望这会对你有所帮助
答案 2 :(得分:0)
您的javascript函数应如下所示
$(function(){
$.ajax({
type:'GET',
url: '/rss/core/inc/rssnews.inc.php',
success: function (data){
for(var i=0;i<data.length;i++){
console.log(data[i].title);
}
}
});
});