我正在创建一个 html 表单,允许用户指定要提交的可变长度字段(通过 javascript 在客户端添加/删除字段)。
我希望能够将这些提交作为二维数组服务器端来处理,例如:
array(
array(
'venue_name' = 'venue 1',
'venue_description' => 'nighlife',
'venue_street_address' => '111 fake street'
....
),
array(
'venue_name' ...
)
);
这是我正在使用的表单 HTML:
<form>
<div style="border:1px solid white;">
<label>Venue Name:</label><br><input name="venue_name[]" type="text" /><br>
<label>Description:</label><br><input name="venue_desc[]" type="text" /><br>
<label>Street Address:</label><br><input name="venue_street_address[]" type="text" /><br>
<label>City:</label><br><input name="venue_city[]" type="text" /><br>
<label>State:</label><br><input name="venue_state[]" type="text" /><br>
<label>Zip:</label><br><input name="venue_zip[]" type="text" /><br>
</div>
<div style="border:1px solid white;">
<label>Venue Name:</label><br><input name="venue_name[]" type="text" /><br>
<label>Description:</label><br><input name="venue_desc[]" type="text" /><br>
<label>Street Address:</label><br><input name="venue_street_address[]" type="text" /><br>
<label>City:</label><br><input name="venue_city[]" type="text" /><br>
<label>State:</label><br><input name="venue_state[]" type="text" /><br>
<label>Zip:</label><br><input name="venue_zip[]" type="text" /><br>
</div>
</form>
我使用 jQuery 的 .serialize() 函数通过 ajax 将表单提交到我的服务器,它是这样到达的:
team_name=team+wild&venue;_name[]=venue+1&venue;_desc[]=nighlife&venue;_street_address[]=111+Fake+Street&venue;_city[]=Boston&venue;_state[]=MA&venue;_zip[]=02115&venue;_name[]=venue+2&venue;_desc[]=desc&venue;_street_address[]=115+rake+street&venue;_city[]=Boston&venue;_state[]=MA&venue;_zip[]=03030
我该如何将这个提交字符串转换为我正在寻找的格式的数组,这是处理这种情况的最佳方式吗? (可变长度的表单字段集)
编辑 1
jQuery.ajax({
url: window.location,
type: 'post',
data: {
'vc_method': 'step_submit',
'fan_page_id': jQuery('#fan_page_id').html(),
'submit_data': jQuery(main_holder_body).find('form#setup_form').serialize()
},
cache: false,
dataType: 'json',
success: function(data, textStatus, jqXHR){
console.log(data);
}
});
最佳答案
你可以尝试做的是:
第一个 field :
name="data[0][venue_name]"
第二个 field :
name="data[1][venue_name]"
编辑: 试试这个:
var data = {};
data.submit_data = jQuery(main_holder_body).find('form#setup_form').serializeArray();
data.vc_method = 'step_submit';
data.fan_page_id = jQuery('#fan_page_id').html();
data.fan_page_id = jQuery('#fan_page_id').html();
jQuery.ajax({
url: window.location,
type: 'POST',
data: data,
cache: false,
dataType: 'json',
success: function(data, textStatus, jqXHR){
console.log(data);
}
});
关于php - 读取/提交具有可变长度字段集的表单,作为数组服务器端读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272817/