2012-06-27 127 views
1

我正在研究一種PHP表單,該表單允許用戶將行添加到表中,然後通過電子郵件使用表單提交信息。我需要將這些變量傳遞給電子郵件。我曾嘗試使用此:PHP窗體循環變量

$n = count($type); 
$i = 0; 
for ($i = 0; $i < $n; $i++){ 
    $e_classes = "______________________________________________ \r\n\n"; 
    $e_classes .= "Class Type: {$type[$i]} \r\n"; 
    $e_classes .= "Number of Classes: {$nc[$i]} \r\n"; 
    $e_classes .= "Number of Students: {$sc[$i]} \r\n"; 
    $e_classes .= "______________________________________________ \r\n\n"; 
} 

但是,當我只收到電子郵件中的最後一個表中顯示。我將如何獲取所有添加的表格行來顯示?如果我使用'echo',我可以使所有工作都成功,但我需要將所有內容都傳遞給我可用於發送電子郵件的變量。

+1

將'$ e_classes =「'的第一個實例更改爲'$ e_classes。=」' – Josh

+1

每次輸入'for'循環時,都會覆蓋'$ e_classes'變量 –

回答

6

像這樣:在循環的變量$e_classes

$e_classes = ''; 
$n = count($type); 
$i = 0; 
for ($i = 0; $i < $n; $i++){ 
    $e_classes .= "______________________________________________ \r\n\n"; 
    $e_classes .= "Class Type: {$type[$i]} \r\n"; 
    $e_classes .= "Number of Classes: {$nc[$i]} \r\n"; 
    $e_classes .= "Number of Students: {$sc[$i]} \r\n"; 
    $e_classes .= "______________________________________________ \r\n\n"; 
} 

你的第一個條目被刪除,因爲你用$e_classes =代替$e_classes .=她收到了。

這意味着在每個循環之前,您的變量已重置爲您的第一行的值。

你正在做的:

$Var = ''; 
for($i = 0, $i < n; $i++){ 
    $Var = 'a'; 
} 

// Loop 1 
$Var = 'a'; 

// Loop 2 
$Var = 'a'; 

// Loop 3 
$Var = 'a'; 

你想這樣的:

$Var = ''; 
for($i = 0, $i < n; $i++){ 
    $Var .= 'a'; 
} 

// Loop 1 
$Var = 'a'; 

// Loop 2 
$Var = 'aa'; 

// Loop 3 
$Var = 'aaa'; 

符號=將覆蓋變量與新的一個值。

符號.=將追加變量末尾的值。

+0

FREAKIN BRILLIANT!非常感謝幫助,完美工作! – blutick

+0

@blutick您的歡迎。請標記爲回答問題。謝謝。 –