2013-11-26 29 views
0

我已經存儲在會話數據(JSON)的以下位:追加從sessionStorage的(JSON)dymanic數據的ListView

Prescription: [{"medID":"id1","medName":"name1","medQty":"qty1","medDirec":"Directions1"}, {"medID":"id2","medName":"name2","medQty":"qty2","medDirec":"Directions2"}] 

我想自動獲取這些信息「顯示」內Listview(jQuery的移動)load頁面上,爲了這個,我想出了以下內容:

$(document).ready(function() { 
     window.addEventListener('load', OnStorage, false); 

    }); 

    function OnStorage(event) { 
     if (window.sessionStorage) { 

      var retrievedData = sessionStorage.getItem("Prescription"); 
      var PrescriptionJSON = JSON.parse(retrievedData); 
      var prescLength = PrescriptionJSON.Length(); 

      for (var i = 0; i < PrescriptionJSON.Length(); i++) { 

       var text = '<h2>' + PrescriptionJSON[i].medName + '</h2>' + 
          '<p><strong>Quantity: </strong>' + PrescriptionJSON[i].medQty + '</p>' + 
          '<p><strong>Directions: </strong>' + PrescriptionJSON[i].medDirec + '</p>' 
       $('<li />', { 
        html: text 
       }).appendTo("#summaryList ul"); 
       //$("#summaryList").append(text); 
       //alert(retrievedData); 
      } 

      $('#summaryList').listview("refresh"); 
      $('#summaryList').trigger("create"); 

     } 
    } 

當我取消//alert(retrievedData);我得到的JSON一個警報彈出裏面,但是當我打電話//alert(PrescriptionJSON);(在parsed變量)我得到這麼就像[object,Object]一樣。儘管如此,我不知道這是否值得一提,但以防萬一。

基本上我不知道上面的腳本有什麼問題,因爲我沒有從附加到listview的JSON數據中得到任何東西。 僅供參考,我在HTML端有這個。

<ul id="summaryList" data-role="listview" data-inset="true"> 
    <li data-role="list-divider" style="text-align:center">Prescription Summary</li> 
</ul> 

請注意,數據(Prescription)的長度將被動態地創建,因此長度可能不總是像2上面的例子。

我已經經歷了一個很好的2小時在線研究,發現了類似的問題,但沒有人能幫助我解決我的問題。我也看過http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/,並學習了更多的東西,但仍然無法解決我的問題。

任何建議或問題都非常歡迎!

回答

1
var PrescriptionJSON = '[{"medID":"id1","medName":"name1","medQty":"qty1","medDirec":"Directions1"}, {"medID":"id2","medName":"name2","medQty":"qty2","medDirec":"Directions2"}]'; 
    localStorage.setItem("PrescriptionJSON", PrescriptionJSON); 

    function OnStorage(event) { 
     if (window.localStorage) { 
      var retrievedData = localStorage.getItem("PrescriptionJSON"); 
      var obj = $.parseJSON(retrievedData); 
      var li = ""; 
      $.each(obj, function(key, value) { 
       li += '<li><h2>' + value.medName + '</h2><p><strong>Quantity: </strong>' + value.medQty + '</p><p><strong>Directions: </strong>' + value.medDirec + '</p></li>'  
      }) 

      $('#summaryList').append(li).trigger("create"); 
      $('#summaryList').listview("refresh"); 
     } 
    } 
+0

哇,完美的工作。謝謝!不熟悉'$ .each(obj,function(key,value){}'但現在我知道了!:) – Scur4