我有一个包含几个相同字段的表单:
<input type="text" id="qte" value="" name="qte[]">
如何在我的文件处理中传输数组?
我注意到发送ajax的数组变成了一个字符串。
$("#form_commande").submit(function(event){
var qte = $("#qte").val();
if(qte== '')
{
$('#qte_message').html("KO QTE");
}
else
{
$.ajax({
type : "POST",
url: $(this).attr('action'),
data: $(this).serialize(),
success : function(){
$('#form_commande').html('<p>OK</p>');
},
error: function(){
$('#form_commande').html("<p>KO</p>");
}
});
}
return false;
}
答案 0 :(得分:3)
在jquery中获取价值,如:
$("#form_commande").submit(function(event){
var qte_array = new Array();
$('input[name="qte[]"]').each(function(){
qte_array.push($(this).val());
});
if(qte_array.length== 0)
{
$('#qte_message').html("KO QTE");
}
else
{
$.ajax({
type : "POST",
url: $(this).attr('action'),
data: {qte:qte_array},
success : function(){
$('#form_commande').html('<p>OK</p>');
},
error: function(){
$('#form_commande').html("<p>KO</p>");
}
});
}
});
并在php中获取它:
$qte = $_POST["qte"];
这里qte一个数组
答案 1 :(得分:2)
这将返回输入文本框对象:
$("#qte");
这将返回输入文本框对象的值:
$("#qte").val();
请记住,您按ID要求DOM对象,这个定义只返回一个。
答案 2 :(得分:2)
请阅读此主题: JQuery - Reading an array of form values and displaying it?
简而言之,您应该使用标记name="qte[]"
进行迭代,而不是使用ID。在DOM中,您不能拥有两个具有不同ID的不同对象。
var qte_array = new Array();
$('input[name="qte[]"]').each(function(){
qte_array.push($(this).val());
});
在此之后,您将qte []数组的所有值都放在一个对象中 - qte_array。您可以稍后将此数组序列化为JSON,然后将其作为字符串传递。
虽然 - 您不应该做所有这些事情。您可以直接向表单发送ajax请求,无论如何都会传输这些输入中的所有数据。您只需要在服务器端正确处理它们。
答案 3 :(得分:1)
id 是唯一的,您不能拥有更多具有相同ID的字段。
顺便说一句,你应该将值转换为JSON并将它们传递给Ajax