ajax发送php数组,如何使用ajax向PHP端发送数组数据?

今天在写一个购物车的发票功能,由于每个商家都需要有一个发票抬头,因此我用表单来标记

其中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']已经是一个数组了,数据都已经传输过来了。

花费了两天研究这问题,百度之后发现这个问题提问挺少的,不敢独享,赶紧和大伙分享分享!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值