在表单提交上向POST变量添加Javascript数组

Ste*_*305 5 jquery post

我有一个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)

Mar*_*arc 2

就这样:

\n\n
var 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\n
Run Code Online (Sandbox Code Playgroud)\n\n

也可以在这个jsfiddle中找到代码。

\n