1

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.

2
  • 1
    Change the first instance of $e_classes = " to $e_classes .= " Commented Jun 27, 2012 at 16:14
  • 1
    Every time you enter that for loop you override your $e_classes variable Commented Jun 27, 2012 at 16:15

1 Answer 1

6

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.

Sign up to request clarification or add additional context in comments.

2 Comments

FREAKIN BRILLIANT! Thanks so much for the help, worked perfectly!!
@blutick Your welcome. Just mark as answered the question please. Thanks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.