我试图发送具有相同name[]
属性的多个数据,但我无法执行该活动。当我使用这个代码时,它不能很好地工作。我也看到了其他的线程,但这一切都对我没有帮助。实际上,发送到服务器的数据以不同的结构出现在控制台中,如下所述。我希望在PHP中插入product
-qty
数据,以便发送数据的结构应该正确-
例如if - product123456
QTY
=2500
AND if product452136
QTY
will =100
.
请帮助我,我如何使这个函数与此数据在PHP。
完整代码为-
$("form").unbind("submit").bind("submit", function(event) {
var qty = [];
$('input[name="quantity[]"]').each(function() {
qty.push(this.value);
});
var product = [];
$('input[name="product[]"]').each(function() {
product.push(this.value);
});
$.ajax({
url: "_URL_",
type: "POST",
data: {
qty: qty,
pro: product
},
cache: false,
success: function(response) {
alert("OK");
return false;
} else {
alert("Not Ok");
return false;
}
});
//SENDING DATA STRUCTURE in CONSOLE
product[]: 123456
product[]: 452136
qty[]: 2500
qty[]: 100
// ARRAY STRUCTURE IN PHP
[product] => Array
(
[0] => 123456
[1] => 452136
)
[qty] => Array
(
[0] => 2500
[1] => 100
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
你的代码工作得很好。我认为问题出在别处。试试console.log($('input[name="product[]"]').length)
看看你的jquery选择器是否抓取了正确的输入。
let product = [];
$('input[name="product[]"]').each(function() {
product.push(this.value);
});
console.log(product);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="product[]" value="1">
<input name="product[]" value="2">
<input name="product[]" value="3">
关于UPDATE的回答
如果你想发送产品的关联数组,你应该使用这个名称结构
<input name="product[id]" value="123456">
<input name="product[qty]" vlaue="2500">
那么你将在PHP中得到如下格式的结果
'products' => [
[
'id' => 123456,
'qty' => 2500
],
[
'id' => 452136,
'qty' => 100
]
]