ajax发送php数组,如何使用ajax向PHP端发送数组数据?
今天在写一个购物车的发票功能,由于每个商家都需要有一个发票抬头,因此我用表单来标记其中k代表的是店铺id,然后通过ajax把该数组发送到PHP后台去处理,最初我的JS是这样写的:vardata={};varinvoice_name=$("input[name=invoice_name]");data.invoice_name=invoice_name;$.ajax({type:'p...
今天在写一个购物车的发票功能,由于每个商家都需要有一个发票抬头,因此我用表单来标记
其中k代表的是店铺id,然后通过ajax把该数组发送到PHP后台去处理,最初我的JS是这样写的:
var data = {};
var invoice_name = $("input[name=invoice_name]");
data.invoice_name = invoice_name;
$.ajax({
type:'post',
url:ApiUrl+'/index.php?act=member_buy&op=buy_step2',
data:data,
dataType:'json',
success:function(result){
//返回处理
}
});
然后我在PHP进行打印老是为空,后面通过研究发现,如果有两个店铺id为1和2的店铺时,表单会变成:
经过高人指点后发现,jquery选择器有问题,$("input[name=invoice_name]")这个选择器表示name恰好为“invoice_name”的文本框,应该这样写:
$("input[name^=invoice_name]");
表示为所有name类似invoice_name的文本框,改好了之后发现PHP只能接收一个发票抬头的值,经过研究发现,默认这样传输只能传数组里第一个值过去,因此应该要在js中遍历invoice_name的值存为数组再发送,正确写法应该这样:
var data = {};
var invoice = [];
$("input[name^=invoice_name]").each(function(a_Idx, a_Elmt) { invoice.push(a_Elmt.value); });
data.invoice_name = invoice;
$.ajax({
type:'post',
url:ApiUrl+'/index.php?act=member_buy&op=buy_step2',
data:data,
dataType:'json',
success:function(result){
//返回处理
}
});
现在到了php端发现$_POST['invoice_name']已经是一个数组了,数据都已经传输过来了。
花费了两天研究这问题,百度之后发现这个问题提问挺少的,不敢独享,赶紧和大伙分享分享!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)