2011-09-08 70 views
0

我有一個谷歌地圖,用戶在各個位置放置標記。我在一個窗體上單擊事件顯示一個jQuery對話框,其中用戶將填寫與標記有關的其他細節。 現在我需要使這個數據保持:JavaScript中的鍵值數據結構

1]我需要將標記(以及細節)存儲到窗體的隱藏字段,所以我的服務器可以解析它並填充數據庫。東西就行了:

markerData = JSON.stringify($('#dialog' + markerId).serializeObject()); // the form 
.. add the markerData with key as markerId to a global javascript variable .. 
$('#markersList').val(JSON.stringify("the global var")); 

注: $('#dialog' + markerId)唯一標識標記對話框(它的形式)

2]我需要從數據庫中檢索值,並形成串即會置於隱藏的領域。這是編輯/查看頁面所必需的。

基本上我需要在JavaScript中的數據結構(鍵/值)其中markerId是關鍵和表單元素的值,並且我需要一種方法來轉換服務器可解析的格式中的所有值(通過隱藏字段)反之亦然。

回答

1

什麼:

var keyValuePairs = [{ "key1": "value1" }, { "keyN": "valueN" }]; 
alert(keyValuePairs["key1"]); 

或者只是:

var keyValuePairs = {}; 
keyValuePairs["key1"] = "value1"; 
keyValueParis["keyN"] = "value2"; 
alert(keyValuePairs["key1"]); 

UPDATE: 如果要發佈此關聯數組作爲JSON在一個隱藏字段,只是字符串化數組使用您選擇的JSON庫並將JSON文本設置爲整個隱藏字段。

+0

請不要將'new Array()'用於關聯數組應該使用'{}'。 – Shurdoof

+0

@Shurdoof,有什麼理由嗎?或者這只是你的意見..? –

+0

感謝Matias,但是我需要以一種方式將所有值(「value1」,「valueN」)存儲在隱藏字段中,以便我可以在服務器端解析它並填充數據庫。 (我正在使用php) – CodeRain

0

javascript中的所有對象都是鍵/值對。你還需要什麼?你可以把它像:

只要給定markerId你有formElements規定,只是做

userInput[markerId] = formElements 

這是相同的定義一個變量

var userInput = {} 

,如果你想編寫代碼時有一個具體的ID(如Id1)並且寫入

userInput.Id1 = formElements 

所以在那之後你有userInput對象的屬性名稱等於你的ID(鍵),並且值等於用戶定義的表單元素 - 正是你需要的,對吧?