我有一个表单,输入字段看起来像这样:
<input class="sku_entry" name="sku['901257']['1']" id="sku['901257']['1']" placeholder="Enter Licence" />
<input class="sku_entry" name="sku['901257']['2']" id="sku['901257']['2']" placeholder="Enter Licence" />
<input class="sku_entry" name="sku['901257']['3']" id="sku['901257']['3']" placeholder="Enter Licence" />
每个条目有两个数组名称,一个是产品编号,第二个是计数(订单购物车中的多个项目)我可以将此直接传递给我的提交脚本,PHP var dump看起来像这样:
array(1) { ["sku"]=> array(2) { ["'901257'"]=> array(3) { ["'1'"]=> string(0) "" ["'2'"]=> string(0) "" ["'3'"]=> string(0) "" } ["'901253'"]=> array(2) { ["'1'"]=> string(0) "" ["'2'"]=> string(0) "" } } }
一切都很好 - 我可以毫无后顾之忧地继续处理。
问题是我想使用Jquery AJAX技术将此数据传递给我的提交脚本。请注意,数组名称总是不同 - 所以我不能硬编码JS中的任何数组名称。我已经尝试按类定位表单字段,这似乎到目前为止效果最好,但对于我的生活,我似乎无法让Jquery将数据传递到我的PHP提交脚本,格式为PHP可以远程读取为数组。
任何想法??
到目前为止,这是我的Jquery:
$('#add_licence_numbers').submit(function(){
var action = $(this).attr('action');
$.post(action, {
// sku: $('#sku').val(), // this works for a targeted field by ID
// sku: $('.sku').val(), // by classname
// need to run some sort of loop here to pull in the POST and resend it on to PHP
},
function(data)
{
$('#add_licence_numbers #submit').attr('disabled','');
$('.response').remove();
$('#add_licence_numbers').before('<div class="response">'+data+'</div>');
$('.response').slideDown();
if(data=='processed')
{
$('#add_licence_numbers').slideUp();
window.location.href = "http://submissiondomain.com/quote/review/";
}
}
);
return false;
});
答案 0 :(得分:1)
使用serialize()
将表单数据转换为有效的查询字符串:
$('#add_licence_numbers').submit(function(e){
e.preventDefault();
var $form = $(this);
$.post($form.prop('action'), $form.serialize(), function(data) {
// rest of your code..
});
});
答案 1 :(得分:0)
只是做一个序列化?
$.post( "url" , $("#formID").serialize(), function(data) {});
这将获取所有表单数据并以可读格式将其传递回php。