JQUERY Ajax - POST 以数组名称传递的数据
JQUERY Ajax - POST Data passed with Array names
我有一个表单,输入字段看起来像这样:
<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 中对任何数组名称进行硬编码。我已经尝试通过 class 定位表单字段,到目前为止这似乎效果最好但是对于我来说我似乎无法 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;
});
只是做一个连载?
$.post( "url" , $("#formID").serialize(), function(data) {});
这将获取您所有的表单数据并将其以可读格式传回给 php。
使用serialize()
将表单数据转换为有效的查询字符串:
$('#add_licence_numbers').submit(function(e){
e.preventDefault();
var $form = $(this);
$.post($form.prop('action'), $form.serialize(), function(data) {
// rest of your code..
});
});
我有一个表单,输入字段看起来像这样:
<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 中对任何数组名称进行硬编码。我已经尝试通过 class 定位表单字段,到目前为止这似乎效果最好但是对于我来说我似乎无法 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;
});
只是做一个连载?
$.post( "url" , $("#formID").serialize(), function(data) {});
这将获取您所有的表单数据并将其以可读格式传回给 php。
使用serialize()
将表单数据转换为有效的查询字符串:
$('#add_licence_numbers').submit(function(e){
e.preventDefault();
var $form = $(this);
$.post($form.prop('action'), $form.serialize(), function(data) {
// rest of your code..
});
});