Ajax无法加载php json

时间:2015-07-02 13:29:14

标签: javascript php jquery json sjax

问题是, json 文件未显示。我使用 Xampp 作为本地服务器。

php文件:

$array = array(
  array(
    "title" => "Erster Eintrag",
    "description" => "Description",
    "link" => "http://",
    "pubDate" => "02.07.2015"
  ),
  array(
    "title" => "Zweiter Eintrag",
    "description" => "Description",
    "link" => "http://",
    "pubDate" => "02.07.2015"
  )      
);
echo json_encode($json);

html文件:

$ajax({
url:'localhost/uebung/staticfeed.php',
type:'POST',
data:'data',
dataType: 'json',
success: function(result){
  $('#feeds').html(result[0]);
}
})

4 个答案:

答案 0 :(得分:1)

在PHP中使用json_encode

  

返回包含值的JSON表示的字符串。

使用$arrayjson_encode代替$json

echo json_encode($array);
///             ^^^^^^^^^

答案 1 :(得分:1)

JavaScript使用$ .ajax然后使用完整的URL。

$.ajax({
url:'http://localhost/uebung/staticfeed.php',
type:'POST',
data:'data',
dataType: 'json',
success: function(result){
  $('#feeds').html(result[0]);
});

您还需要在php文件中对数组进行编码。

echo json_encode($array);

答案 2 :(得分:1)

$ajax更改为$.ajax,这将删除代码中的错误,其他一切正常

答案 3 :(得分:1)

您在PHP答案中缺少JSON标头,Jquery可能会将您的响应解释为纯文本或HTML ...

此外,您回复$json,您的数组为$array

尝试使用PHP:

header('Content-type: application/json');
$array = [["title" => "Erster Eintrag","description" => "Description","link" => "http://","pubDate" => "02.07.2015"],["title" => "Zweiter Eintrag","description" => "Description","link" => "http://","pubDate" => "02.07.2015"]];
echo json_encode($array);

这就在您的HTML上:

$.ajax({type: "POST", url: "localhost/uebung/staticfeed.php", data:data, dataType: "json", timeout: 25000, success: function (result) {
 $('#feeds').html('First array:' + result.[0].title + '<br />Seccond array:' + result.[1].title );
}});

您需要在[result] ...

中选择INSIDE数组中的值