2016-01-05 120 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]) 
}