2013-05-18 21 views
0

我正在做一個uni任務,所以請原諒coplete缺乏知識。我一直負責爲一個「客戶」創建一個基於Web的應用程序,這需要我在完成所有細節後打開發票,到目前爲止,我的表單工作正常,我可以保存到本地存儲,沒有問題,甚至可以以我想要的格式檢索信息。檢索javascript中的最後一個鍵本地存儲

的問題是,如果我有多個「訂單比我只能檢索保存到localStorage的第一串和我無法弄清楚如何使它顯示最新/最後一個。

的關鍵在於幾乎是隨機生成的數字,因爲我們不得不承擔大量的訂單,所以我附上了下面的代碼,如果有人能幫助我,我將不勝感激。告訴我們不能使用這些。此外,我不能使用服務器(PHP等)。

感謝 史蒂夫

<script> 
var i = 0; 

var itemKey = localStorage.key(i); 
var values = localStorage.getItem(itemKey); 
values = values.split(";"); 
var name = values[0]; 
var company = values[1]; 
var contactnumber = values[2]; 
var email = values[3]; 
var address1 = values[4]; 
var address2 = values[5]; 
var suburb = values[6] 
var postcode = values[7]; 
var comments = values[8]; 
var bags = values[9]; 
var distance = values[10]; 
var hdelivery_fee = values[11]; 
var hprice = values[12]; 
var htotal_notax = values[13]; 
var hgst = values[14]; 
var htotal_tax = values[15]; 
var hordernumber = values[16]; 


document.write('Name: ' + name + '<br />'); 
document.write('Company: ' + company + '<br />'); 
document.write('Contact: ' + contactnumber + '<br />'); 
document.write('Email; ' + email + '<br />'); 
document.write('Address; ' + address1 + '<br />'); 
document.write('Address; ' + address2 + '<br />'); 
document.write('Suburb; ' + suburb + '<br />'); 
document.write('Postcode; ' + postcode + '<br />'); 
document.write('Comments; ' + comments + '<br />'); 
document.write('Number of Bags; ' + bags + '<br />'); 
document.write('Distance; ' + distance + '<br />'); 
document.write('Delivery Fee; $' + hdelivery_fee + '<br />'); 
document.write('Price of Bags; $' + hprice + '<br />'); 
document.write('Total Ex-GST; $' + htotal_notax + '<br />'); 
document.write('GST; $' + hgst + '<br />'); 
document.write('Total Inc GST; $' + htotal_tax + '<br />'); 
document.write('hordernumber; ' + hordernumber + '<br />'); 


</script> 
+0

你應該使用JSON這一點。 – georg

+0

嘿夥計,是的,我知道,我希望我們可以,如果可以的話,這件事情會變得更加容易,但是講師明確表示我們不能這麼說,對我們來說太糟糕了.-) – user2397654

+0

我認爲你說得對。 – georg

回答

0

要顯示陣列的最後一個值,應使用值[values.length-1]。

這將保證您獲得絕對最後一個。

+0

嘿Pbrain,謝謝你這麼快速的回覆,我在哪裏可以提到我的代碼? – user2397654

+0

嘿夥計,你的回答讓我走上正軌,謝謝!我最終修復了這個問題 'var i = localStorage.length-1;' 再次感謝! – user2397654

0

簡單放

var itemKey = localStorage.key(i); 
var values = localStorage.getItem(itemKey); in a loop and increement i each time. 
0

你可以嘗試這樣的事情

var localStorageKeys = Object.keys(localStorage); 

getOrder(localStoragesKeys[localStoragesKeys.length-1]); 

function getOrder(itemKey) { 
    var values = localStorage.getItem(itemKey); 
    values = values.split(";"); 
    var name = values[0]; 
    var company = values[1]; 
    var contactnumber = values[2]; 
    var email = values[3]; 
    var address1 = values[4]; 
    var address2 = values[5]; 
    var suburb = values[6] 
    var postcode = values[7]; 
    var comments = values[8]; 
    var bags = values[9]; 
    var distance = values[10]; 
    var hdelivery_fee = values[11]; 
    var hprice = values[12]; 
    var htotal_notax = values[13]; 
    var hgst = values[14]; 
    var htotal_tax = values[15]; 
    var hordernumber = values[16]; 


    document.write('Name: ' + name + '<br />'); 
    document.write('Company: ' + company + '<br />'); 
    document.write('Contact: ' + contactnumber + '<br />'); 
    document.write('Email; ' + email + '<br />'); 
    document.write('Address; ' + address1 + '<br />'); 
    document.write('Address; ' + address2 + '<br />'); 
    document.write('Suburb; ' + suburb + '<br />'); 
    document.write('Postcode; ' + postcode + '<br />'); 
    document.write('Comments; ' + comments + '<br />'); 
    document.write('Number of Bags; ' + bags + '<br />'); 
    document.write('Distance; ' + distance + '<br />'); 
    document.write('Delivery Fee; $' + hdelivery_fee + '<br />'); 
    document.write('Price of Bags; $' + hprice + '<br />'); 
    document.write('Total Ex-GST; $' + htotal_notax + '<br />'); 
    document.write('GST; $' + hgst + '<br />'); 
    document.write('Total Inc GST; $' + htotal_tax + '<br />'); 
    document.write('hordernumber; ' + hordernumber + '<br />'); 
} 
0

如果必須使用localStorage,不能使用任何客戶端數據庫,那麼我會保存在它前面的一個已知的串像new Date().getTime()一個關鍵的每個條目,所以你有key-1368910344400

當您需要檢索的最後一項,那麼你可以這樣做:

var keys = Object.keys(localStorage); 
keys = keys.map(function(key) { 
    // check if the current key matches match "key-" 
    // if that's the case create a new Date object with the ms obtained by a split 
    // return the Date 
}); 

// sort keys and take the most recent 

這通常是一個不錯的選擇,但據我所知你與選擇的限制,所以你要舒展事情有點。

如果你可以使用支持HTML5和webdb然後只是把localStorage離開,去一個瀏覽器:d,這裏有一個例子:http://www.html5rocks.com/en/tutorials/webdatabase/todo/

相關問題