jQuery for循环,AJAX调用


jQuery for loop, AJAX call

我有一个收集乘客详细信息的表格。

它收集的字段有:

passenger-firstname 
passenger-surname   
passenger-address1  
passenger-address2  
passenger-town
passenger-passportnumber

在每位乘客之后,我会添加一个数字(取决于所选内容)

因此,这些项目看起来像:

passenger1-firstname    
passenger1-surname  
passenger1-address1 
passenger1-address2 
passenger1-town
passenger1-passportnumber
passenger2-firstname    
passenger2-surname  
passenger2-address1 
passenger2-address2 
passenger2-town
passenger2-passportnumber

这个数字的变化取决于选择的数量

我想做的(在表单提交时)是循环遍历乘客变量,并将它们发送到AJAX调用,然后我将其存储在PHP会话中。

var num_travellers = $('.num_travellers').val();
// For loop through travellers
for (i = 0; i < num_travellers; i++)
{
   var passenger_firstname[i] = $('.passenger[i]-firstname').val();
   alert(passenger_firstname);
}

然而,当我这样做时,我会收到错误消息

SyntaxError:缺少;之前语句源文件:var乘客[i];

我如何解决这个问题,然后将其作为AJAX提交?我愿意把它改成数组或任何类似的东西

感谢

不能像这样声明数组:

var passenger[i];

要么声明一个变量:

var passenger;

或者声明一个数组:

var passengers = [];

也许你的意思是在循环之外声明数组,并在循环中推送它?像这样的东西?:

var passengers = [];
for (i = 0; i < num_travellers; i++)
{
    var passenger;
    alert(passenger); // doesn't make sense, it's undefined at this time
    // set the value to something here?  perhaps this?:
    passenger = {
        firstname: 'some value',
        surname: 'another value',
        etc: 'more values'
    };
    passengers.push(passenger);
}

并不完全清楚您在这里想要完成什么,但至少语法对于创建数组来说是不正确的。

您必须定义一个变量,然后将passenger[i]分配给它。

var vPassenger = passenger[i];
alert(vPassenger)

创建一个数组并将所有乘客推到它上面。

var passengers;
for (i = 0; i < num_travellers; i++)
{
 passengers.push(passenger[i])
}