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对象,根据定义,此项只返回一个。

请阅读本主题:

简而言之,您应该使用tag
name=“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”];非常好;我非常喜欢能够直接传递数组并将其作为数组接收