我有一个谷歌地图,用户在不同位置放置标记。我在点击事件上显示一个jquery对话框,其中有一个表单,用户将填写与标记有关的其他详细信息。 现在我需要保持这些数据:
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是键,表单元素是值,我需要一种方法来转换服务器可解析的格式的所有值(通过隐藏字段)和反之亦然。
答案 0 :(得分:1)
怎么样:
var keyValuePairs = [{ "key1": "value1" }, { "keyN": "valueN" }];
alert(keyValuePairs["key1"]);
或者只是:
var keyValuePairs = {};
keyValuePairs["key1"] = "value1";
keyValueParis["keyN"] = "value2";
alert(keyValuePairs["key1"]);
<强>更新强> 如果你想在隐藏字段中将这个关联数组作为JSON发布,只需 stringify 使用你选择的JSON库的数组,并将JSON文本设置为整个隐藏字段。
答案 1 :(得分:0)
javascript中的所有对象都是键/值对。你还需要什么?你可以这样:
定义变量
var userInput = {}
对于指定markerId
的给定formElements
,只需执行
userInput[markerId] = formElements
就像你在编写代码时有一个具体的ID(比如说Id1
)并编写
userInput.Id1 = formElements
所以在那之后你有userInput
对象,其属性名称等于你的id(键),并且值等于用户定义的表单元素 - 正是你需要的,对吗?