dttvb115151 2012-06-27 16: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 16: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.

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

报告相同问题?

悬赏问题

  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错