2012-04-06 58 views
0

我有以下代碼:.getJson不填充陣列

$(document).ready(function() { 
    $.getJSON('../includes/_quiz.php?class_id=163&course_id=183',function(data){ 
     $.each(data,function(k,v){ 
      questions[k] = v.question; 
      answers[k*4] = v.ansO; 
      answers[k*4+1] = v.ansT; 
      answers[k*4+2] = v.ansTh; 
      answers[k*4+3] = v.ansF; 
      }); 

     //html 
     }); 
    }); 

問題陣列沒有被填滿,然而,當我調試,我得到這樣的結果: 當我請求的頁面在瀏覽器我收到相同的結果是:

[{"question":"\u0623\u0647\u0645 \u0627\u0644\u0635\u0646\u0627\u0639\u0627\u062a \u0627\u0644\u0633\u0648\u0631\u064a\u0629 \u0648 \u062a\u062f\u062e\u0644 \u0628\u0627\u0644\u062a\u0635\u062f\u064a\u0631 :","ansO":"\u0627\u0644\u0623\u0633\u0645\u062f\u0629","ansT":"\u0627\u0644\u0623\u062f\u0648\u0627\u062a \u0627\u0644\u0632\u0631\u0627\u0639\u064a\u0629","ansTh":"\u0627\u0644\u0632\u064a\u0648\u062a \u0627\u0644\u0646\u0628\u0627\u062a\u064a\u0629","ansF":"\u0627\u0644\u0635\u0646\u0627\u0639\u0627\u062a \u0627\u0644\u0646\u0633\u064a\u062c\u064a\u0629","corr":"4"},{"question":"\u064a\u0633\u062a\u0648\u0631\u062f \u0627\u0644\u0639\u0631\u0627\u0642 \u0628\u0639\u0636 \u0627\u0644\u0645\u0648\u0627\u062f \u0645\u0646\u0647\u0627:","ansO":"\u0627\u0644\u0646\u0641\u0637","ansT":"\u0627\u0644\u062a\u0645\u0648\u0631","ansTh":"\u0627\u0644\u0623\u0644\u0627\u062a","ansF":"\u0627\u0644\u063a\u0627\u0632 \u0627\u0644\u0637\u0628\u064a\u0639\u064a","corr":"3"},{"question":"\u064a\u0628\u0644\u063a \u0639\u062f\u062f \u0633\u0643\u0627\u0646 \u0644\u064a\u0628\u064a\u0627 :","ansO":"\/3.5\/ \u0645\u0644\u064a\u0648\u0646 \u0646\u0633\u0645\u0629","ansT":"\/4\/ \u0645\u0644\u064a\u0648\u0646 \u0646\u0633\u0645\u0629","ansTh":"\/5\/ \u0645\u0644\u064a\u0648\u0646 \u0646\u0633\u0645\u0629","ansF":"\/5.5\/ \u0645\u0644\u064a\u0648\u0646 \u0646\u0633\u0645\u0629","corr":"4"}], 

我調試的代碼,發現它不進入裏面,它直接移動到年底

之前,我做了一些modificat離子代碼,數組填充, 可能是什麼問題?

+1

這個逗號在響應的最後部分? – JayC 2012-04-06 03:49:50

+0

nope JayC,我只接受了部分響應,因爲它太長了 – mfadel 2012-04-06 03:53:47

回答

1

如果JSON文件包含語法錯誤,請求通常會失敗默默。因此,添加.error方法並檢查解析json時是否有任何錯誤。

// Assign handlers immediately after making the request, 
// and remember the jqxhr object for this request 
var jqxhr = $.getJSON("example.json", function() { 
    alert("success"); 
}) 
.success(function() { alert("second success"); }) 
.error(function() { alert("error"); }) 
.complete(function() { alert("complete"); }); 
+0

結果是這樣的, jqxhr.statusText「成功」 jqxhr.status 200 數據正在被抓取,但裏面的代碼.getJson()沒有被調用 – mfadel 2012-04-06 04:17:55

+0

它警告,第一:第二個成功,然後,完成, 它似乎只是問題,我不知道如何處理數據 – mfadel 2012-04-06 04:28:02

+0

所以它不能解析json,即使請求處理成功嘗試parseJson()在第二次成功 – 2012-04-06 04:43:11

1

請數據分配給一個變量

瓦爾結果=數據

你只寫像

警報(結果[0] .questions)

您正在獲取數組格式但未分配給變量。 首先分配給變量

result = [{"question":"\u0623\u0647\u0645 \u0627\u0644\u0635\u0646\u0627\u0639\u0627\u062a \u0627\u0644\u0633\u0648\u0631\u064a\u0629 \u0648 \u062a\u062f\u062e\u0644 \u0628\u0627\u0644\u062a\u0635\u062f\u064a\u0631 :","ansO":"\u0627\u0644\u0623\u0633\u0645\u062f\u0629","ansT":"\u0627\u0644\u062‌​3\u062f\u0648\u0627\u062a \u0627\u0644\u0632\u0631\u0627\u0639\u064a\u0629","corr":"4"}] 
+0

您正在獲取數組格式但未分配給任何變量。首先分配給變量 result = [{「question」:「\ u0623 \ u0647 \ u0645 \ u0627 \ u0644 \ u0635 \ u0646 \ u0627 \ u0639 \ u0635 \ u0646 \ u0627 \ u0639 \ u0627 \ u062a \ u0627 \ u0644 \ u0633 \ u0648 \ u0631 \ u064a \ u0629 \ u0648 \ u062a \ u062f \ u062e \ u0644 \ u0628 \ u0627 \ u0644 \ u062a \ u0635 \ u062f \ u064a \ u0631:「,」ansO「:」\ u0627 \ u0644 \ u0623 \ u0633 \ u0645 \ u062f \ u0629「 ,「ansT」:「\ u0627 \ u0644 \ u0623 \ u062f \ u0648 \ u0627 \ u062a \ u0627 \ u0644 \ u0632 \ u0631 \ u0627 \ u0639 \ u064a \ u0629」,「corr」:「4」}] – Mahipal 2012-04-06 03:53:20

+0

我試過正如你所說的,當我調試代碼時,我發現它不會進入到.getJson()內部,它直接跳轉到代碼末尾 – mfadel 2012-04-06 03:57:44

+0

嘗試從陣列格式中刪除\標記,我希望你能得到那個 – Mahipal 2012-04-07 18:25:57