我有一个Javascript数组,我想在提交表单时添加到post数组.除了已经从表单发布的其他变量之外,还应添加Javascript数组.有没有办法在JQuery中执行此操作?
防爆.
形成:
<form id="my-form" action="/create.php" method="post">
<input id="first_name" type="text" />
<input id="last_name" type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
Javascript数组:
<script type="text/javascript">
var external_ids = [{"name":"SSN","value":"555-55-5555"},
{"name":"PID","value":"GBNT22"}];
</script>
Run Code Online (Sandbox Code Playgroud)
这就是我希望得到的PHP $ _POST数组,如果可能的话:
Array
(
[first_name] => John
[last_name] => Smith
[external_ids]=>
(
[SSN] => 555-55-5555
[PID] => GBNT22
)
)
Run Code Online (Sandbox Code Playgroud)
就这样:
\n\nvar external_ids = [{"name": "SSN", "value": "555-55-5555"},\n {"name": "PID", "value": "GBNT22"}];\n\n// form fields\nvar values = {};\nvar fields = $(\'#myForm :input\');\n$.each(fields, function(i, field) {\n var dom = $(field),\n name = dom.attr(\'id\'),\n value = dom.val();\n values[name] = value;\n});\n\n// add array\nvalues.external_ids = {};\n$.each(external_ids, function(i, field) {\n values.external_ids[field.name] = field.value;\n});\n\n// post data\n$.post(\'/endpoint\', values);\xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n\n也可以在这个jsfiddle中找到代码。
\n| 归档时间: |
|
| 查看次数: |
19950 次 |
| 最近记录: |