2017-06-03 92 views
0

我試圖從我的json文件中加載使用php和and jQuery ajax獲取音樂流派列表。如何從此Json文件中獲取價值

這裏是我的JSON格式

[ 
    "12-bar blues", 
    "2 tone", 
    "2-step garage", 
    "4-beat", 
    "50s progression", 
    "a cappella", 
    "accordion", 
    "acid breaks", 
    "acid house", 
    "acid jazz", 
    "acid rock", 
    "acid techno", 
    "acid trance", 
    "acousmatic music", 
    "acoustic" 
] 

JQuery的

// Get genres 
$("#showgenres").click(function(){ 

    var genres = $("#genrelist"); 

    $.ajax({ 
     url: base_url + "genres/index", 
     method : "GET", 
     success: function(data){ 
      genres.append(data); 
     } 
    }); 

    return false; 

}); 

PHP

public function index(){ 

     $file = include APPPATH . "third_party/genres-master/genres.json"; 
     echo $file; 
     //echo json_encode($file); 

    } 

我的HTML文件

<h3>Genres:</h3> 
<hr> 

<div id="genrelist"></div> 

<button id="showgenres">Show</button> 

和IM想起來了「原始」 JSON輸出,我想從陣列獲得流派值?

回答

0

解決您從服務器返回的JSON方式:

public function index(){ 
     $file = file_get_contents(APPPATH . "third_party/genres-master/genres.json"); 
     header('Content-Type: application/json'); 
     echo $file; 
} 

您需要創建HTML元素追加。

// Get genres 
$("#showgenres").click(function(){ 

    var genres = $("#genrelist"); 

    $.ajax({ 
     url: base_url + "genres/index", 
     method : "GET", 
     success: function(data){ 
      var html = "<ul>" 
      for(var i = 0; i < data.length; i++) { 
       html += ("<li>"+data[i]+"</li>"); 
      } 
      html += "</ul>"; 
      genres.append(html); 
     } 
    }); 

    return false; 

}); 

代Ajax調用(我已經主持了JSON這裏http://myjson.com/hs8kd):

// Get genres 
 
$("#showgenres").click(function(){ 
 

 
    var genres = $("#genrelist"); 
 

 
    $.ajax({ 
 
     url: "https://api.myjson.com/bins/hs8kd", 
 
     method : "GET", 
 
     success: function(data){ 
 
      var html = "<ul>" 
 
      for(var i = 0; i < data.length; i++) { 
 
       html += ("<li>"+data[i]+"</li>"); 
 
      } 
 
      html += "</ul>"; 
 
      genres.append(html); 
 
     } 
 
    }); 
 

 
    return false; 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h3>Genres:</h3> 
 
<hr> 
 

 
<div id="genrelist"></div> 
 

 
<button id="showgenres">Show</button>

+0

這只是給我的每一行 –

+0

的第一個字母是字符串形式的JSON?在'for'循環之前試試'data = JSON.parse(data);' –

+0

是的,我試過了,但是得到錯誤「Uncaught SyntaxError:JSON在位置26905的意外數字」 –

-1

您可以使用以下

$.ajax({ 
    dataType: "json", 
    url: base_url + "genres/index", 
    method : "GET", 
    success: function(data){ 
     genres.append(data); 
    } 
}); 
0
var htmlData = ""; 
    $.ajax({ 
    url: base_url + "genres/index", 
    method : "GET", 
    success: function(data){ 
    data=JSON.parse(data); 
    $.each(data,function(i,v) { 
     htmlData+=v+"<br/>"; 
     } 
     genres.append(htmlData); 
    } 
}); 

這將顯示數據爲:

12-bar blues

2 tone

2-step garage

4-beat

50s progression

a cappella

accordion

acid breaks

acid house

acid jazz

acid rock

acid techno

acid trance

acousmatic music

acoustic

+0

未捕獲的類型錯誤:不能使用'in'運算符來搜索中的'長度' –