2012-06-27 93 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您的欢迎。请标记为回答问题。谢谢。 –