2012-06-27 71 views
4

我有一個Javascript數組,我想添加到提交表單時數組數組。除了已經從表單發佈的其他變量之外,還應該添加Javascript數組。有沒有辦法在JQuery中做到這一點?添加一個Javascript數組到表單POST提交變量

Ex。

形式:

<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 
     ) 
) 
+1

看到這一點: http://stackoverflow.com/questions/3322632/is-it-possible-to-submit-javascript-array-along-with-form-submission – haroonxml

回答

2

你去那裏:

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的代碼。

1

有是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 
    }); 

}

+0

如何將這種眼神在一個jQuery事件處理程序? – Stephen305

相關問題