dttvb115151 2012-06-27 08:11
浏览 9
已采纳

PHP表单循环变量

I am working on a PHP form that allows a user to add rows to a table and then submit the information using the form through email. I need to pass the variables into the email. I have tried using this:

$n = count($type);
$i = 0;
for ($i = 0; $i < $n; $i++){
    $e_classes = "______________________________________________ 

";
    $e_classes .=  "Class Type: {$type[$i]} 
";
    $e_classes .= "Number of Classes: {$nc[$i]} 
";
    $e_classes .= "Number of Students: {$sc[$i]} 
";
    $e_classes .= "______________________________________________ 

";
}

But when I get the email only the last one in the table is displaying. How would I get all of the added table rows to display? I can make everything work if I use 'echo', but I need to pass everything into a variable that I can use for an email.

  • 写回答

1条回答 默认 最新

  • dqnf28092 2012-06-27 08:14
    关注

    Like this :

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

    Your first entry in your loop for the variable $e_classes was erasing what she had before because you used $e_classes = instead of $e_classes .=.

    This mean before each loop, your variable was reset with the value of your first row.

    You were doing this :

    $Var = '';
    for($i = 0, $i < n; $i++){
        $Var = 'a';
    }
    
    // Loop 1
    $Var = 'a';
    
    // Loop 2
    $Var = 'a';
    
    // Loop 3
    $Var = 'a';
    

    You wanted this :

    $Var = '';
    for($i = 0, $i < n; $i++){
        $Var .= 'a';
    }
    
    // Loop 1
    $Var = 'a';
    
    // Loop 2
    $Var = 'aa';
    
    // Loop 3
    $Var = 'aaa';
    

    The symbol = will overwrite the variable's value with the new one.

    The symbol .= will append the value at the end of the variable.

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部