2013-05-05 131 views
1

如何将我的PHP数组传递给此jQuery代码? 我已经试过json_encoding但不能在我的jquery函数中使用它。 我的JSON字符串看起来是这样的:如何传递一个php数组与json到jquery函数,ajax

{"1":{"id":"1","league":"england","team1":"Arsenal","team2":"Chelsea"},"2":{"id":"2","league":"spain","team1":"Deportivo","team2":"Real Madrid"}} 

JS:

<script type="text/javascript"> 
      $(document).ready(function(){ 
       var shownIds = new Array(); 
       setInterval(function(){  
        $.get('livescore_process.php', function(data){ 
         for(i = 0; i < data.length; i++){ 
          if($.inArray(data[i]["id"], shownIds) == -1){ 
           if(data[i]["league"]=="england"){ 
            $("#eng").append("id: " + data[i]["team1"] + " [ "+data[i]["team1"]+ " - "+data[i]["team1"]+" ]"+ data[i]["team2"] +"<br />"); 
           } 
           shownIds.push(data[i]["id"]); 
          } 
         } 
        }); 
       }, 3000); 
      }); 
     </script> 
+0

的*第一个*的相关链接栏的标题为[如何通过使用PHP和Ajax来的Javascript数组?](http://stackoverflow.com/questions/7263052/如何对传递的阵列 - 利用-PHP-AJAX到JavaScript的?RQ = 1)。它真的不适用于你的问题吗? (编辑:另外,因为你的数据不是一个真正的数组,而是一个对象,它不会有'长度'属性。) – DCoder 2013-05-05 16:19:32

回答

0

尝试$.getJSON代替$.get和使用PHP json_encode:但是响应数据不是

$.getJSON('livescore_process.php', function(data){... 

数组,但一个JSON对象,所以要处理它,你可以尝试:

$.each(data, function (index, item) { 
    if (item.hasOwnProperty('id')) { 
     if (item.league == "england") { 
      $("#eng").append("id: " + item.team1 + " [ " + item.team1 + " - " + item.team1 + " ]" + item.team2 + "<br />"); 
     } 
     shownIds.push(item.id); 

    } 
}); 

jsfiddle

+0

谢谢!有效 – Reminisce 2013-05-05 18:17:20