【问题标题】:Add a Javascript array to POST variable on form submit在表单提交时将 Javascript 数组添加到 POST 变量
【发布时间】:2012-06-27 13:31:56
【问题描述】:

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

Javascript 数组:

<script type="text/javascript">

var external_ids = [{"name":"SSN","value":"555-55-5555"},    
{"name":"PID","value":"GBNT22"}];

</script> 

如果可能的话,这就是我希望生成的 PHP $_POST 数组的样子:

Array
(
    [first_name] => John
    [last_name] => Smith
    [external_ids]=>
        (
            [SSN] => 555-55-5555
            [PID] => GBNT22
        )
)

【问题讨论】:

标签: jquery post


【解决方案1】:

你去吧:

var external_ids = [{"name": "SSN", "value": "555-55-5555"},
                    {"name": "PID", "value": "GBNT22"}];

// form fields
var values = {};
var fields = $('#myForm :input');
$.each(fields, function(i, field) {
    var dom = $(field),
        name = dom.attr('id'),
        value = dom.val();
    values[name] = value;
});

// add array
values.external_ids = {};
$.each(external_ids, function(i, field) {
    values.external_ids[field.name] = field.value;
});

// post data
$.post('/endpoint', values);​

jsfiddle 中也可以找到代码。

【讨论】:

    【解决方案2】:

    jQuery 上有 serialize() 函数。你检查过这个吗?

    或者你可以使用这样的东西:

    function onSubmit(){
        var toSend = [
            first_name : 'John',
            last_name : 'Smith',
            external_ids : {
                SSN: '555-55-5555',
                PID: 'GBNT22'
            }
        ];
    
        $.post( yourUrl, toSend, function(data){
            //callback
        } );
    

    }

    【讨论】:

    • 这在 JQuery 事件处理程序中看起来如何?
    猜你喜欢
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2016-05-22
    • 2017-07-15
    • 1970-01-01
    相关资源
    最近更新 更多