2016-01-05 92 views
0

我收集了一份收集乘客详细信息的表单。jQuery for循环,AJAX调用

它收集的字段有:

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: missing ; before statement Source File: var passenger[i];

我怎样才能解决这个问题,反过来提交为AJAX?我愿意将它改为数组或任何类型的东西。

感谢

+0

首先,你需要检查一些关于JS语法的指南。然后删除'var passenger [i];'。 – dfsq

回答

1

你不能声明数组是这样的:

var passenger[i]; 

要么声明一个变量:

var passenger; 

或者声明一个数组:

var passengers = []; 

也许你打算在循环之外声明数组a nd在循环中推送它?像这样的东西?:

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); 
} 

这不是完全清楚你想要什么在这里完成,但最起码​​的语法不是创建一个数组是正确的。

+0

干杯@大卫澄清,我使用“乘客1的名字”,“乘客1姓氏”这1将改为2 3等等,取决于有多少乘客被选中。 – StuBlackett

+0

@StuBlackett:我不确定你是如何处理你的数据的,但是我已经用创建对象的语法更新了答案,以推送到数组。希望有帮助。 – David

+0

太好了。我会尽力处理这些数据。 – StuBlackett

1

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

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

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

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