我正在开发一个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";
}
Run Code Online (Sandbox Code Playgroud)
但是当我收到电子邮件时,只显示表格中的最后一个.如何显示所有添加的表格行?如果我使用'echo',我可以使一切正常,但我需要将所有内容都传递给我可以用于电子邮件的变量.
像这样 :
$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";
}
Run Code Online (Sandbox Code Playgroud)
您在变量循环中的第一个条目$e_classes是删除之前的内容,因为您使用的是$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';
Run Code Online (Sandbox Code Playgroud)
你想要这个:
$Var = '';
for($i = 0, $i < n; $i++){
$Var .= 'a';
}
// Loop 1
$Var = 'a';
// Loop 2
$Var = 'aa';
// Loop 3
$Var = 'aaa';
Run Code Online (Sandbox Code Playgroud)
该符号=将使用新值覆盖变量的值.
该符号.=将值附加在变量的末尾.