Php jquery:在ajax中传递数组
我有一个具有几个相同字段的表单:Php jquery:在ajax中传递数组,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我有一个具有几个相同字段的表单: <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 {
<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;
$(“表单命令”).submit(函数(事件){
var qte=$(“#qte”).val();
如果(qte='')
{
$('qte_message').html(“KO qte”);
}
其他的
{
$.ajax({
类型:“POST”,
url:$(this.attr('action'),
数据:$(this).serialize(),
成功:函数(){
$('#form_command').html('OK');
},
错误:函数(){
$('form#u command').html(“KO”);
}
});
}
返回false;
}这将返回输入文本框对象:
$("#qte");
$("#qte").val();
这将返回输入文本框对象的值:
$("#qte");
$("#qte").val();
请记住,您要求按id输入DOM对象,根据定义,此项只返回一个。请阅读本主题:
简而言之,您应该使用tagname=“qte[]”
迭代,而不是使用ID。在DOM中,不能有两个具有不同ID的不同对象
var qte_array = new Array();
$('input[name="qte[]"]').each(function(){
qte_array.push($(this).val());
});
在此之后,您将qte[]数组的所有值放在一个对象-qte_数组中。您可以稍后将此数组序列化为JSON,然后将其作为字符串传递
$("#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;
尽管您不需要做所有这些事情。您可以直接用表单发送ajax请求,这些输入中的所有数据都将被传输。您只需要在服务器端正确处理它们。id是唯一的,不能有更多具有相同id的字段
顺便说一下,您应该将值转换为JSON并将其传递给Ajax,以便在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>");
}
});
}
});
这里qte一个数组如果它正在发送一个字符串,那么可能需要使用
serializeArray()
。不能有多个ID相同的字段,jQuery只能识别它看到的第一个字段。ID是唯一的标识符。数组变成JSON字符串。不能有相同ID的相同字段,可能是您可以使用类。这不是最重要的。我可以放一个类。我还有一个字段名、姓氏和电子邮件。如何发送数据(数据:)并在php中恢复$\u post[]吗?感谢您的支持help@ChristopheMartin:将行更改为数据:{qte:qte_数组,姓氏:“Name”,电子邮件:email@domain.com“},并在php中获取$SHANEST=$\u POST[“SHANEST”];$email=$\u POST[“email”];非常好;我非常喜欢能够直接传递数组并将其作为数组接收