blutick
blutick

Reputation: 13

PHP form Loop Variables

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 = "______________________________________________ \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";
}

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.

Upvotes: 1

Views: 118

Answers (1)

David B&#233;langer
David B&#233;langer

Reputation: 7438

Like this :

$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";
}

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.

Upvotes: 6

Related Questions