2015-01-09 27 views
-1

我有一个表格,输入字段看起来是这样的:JQUERY阿贾克斯 - POST数据传递与数组名

<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" /> 

有每个条目×2名阵列的名字,一个是产品数量,二是计(以车多个项目),我可以通过这种直接给我提交的脚本,PHP变种转储看起来是这样的:

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

回答

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.. 
    }); 
}); 
+0

感谢你,工作一个魅力! – Nick

0

只是做一个序列化?

$.post("url" , $("#formID").serialize(), function(data) {}); 

这将采取所有您的表单数据,并将其传回到PHP的可读格式。