переменные внутри формы отправки почты php
Я новичок в php/mysql, так что полегче со мной:)
Я сделал очень простую форму заказа php для нашей работы, в которой много выпадающих списков. Это отправит результаты по электронной почте с использованием sendmail на php.
Теперь я пытаюсь сделать его динамичным, используя базу данных sql.
У меня есть форма, настроенная с использованием sql и php, но моя проблема заключается в отправке динамически генерируемых данных.
У меня есть все переменные, доступные с помощью этой строки
extract($_POST['orderdetails'], EXTR_SKIP);
В переменные заканчиваются как $vanilla00, $vanilla06, $vanilla11 и т.д...
Итак, теперь у меня есть этот код для создания таблицы с использованием этих переменных
while($row = mysql_fetch_array($resultbline))
{$message .="<tr><td>"
. $row['prod_name']
. "</td><td> </td><td></td>
<td>$" . $row['prod_selectname'] . "0</td>
<td>$" . $row['prod_selectname'] . "6</td>
<td>$" . $row['prod_selectname'] . "11</td>
<td>$" . $row['prod_selectname'] . "18</td>
<td>$" . $row['prod_selectname'] . "t</td>
<td>$" . $row['prod_selectname'] . "24</td>
<td>$" . $row['prod_selectname'] . "36</td>" ;
}
Имя prod_select берется из базы данных и в данном случае будет ванильным, поэтому в конечном итоге в таблице будет указано
while($row = mysql_fetch_array($resultbline))
{$message .="<tr><td>"
. $row['prod_name']
. "</td><td> </td><td></td>
<td>$vanilla0</td>
<td>$vanilla6</td>
<td>$vanilla11</td>
<td>$vanilla18</td>
<td>$vanillat</td>
<td>$vanilla24</td>
<td>$vanilla36</td>" ;
}
Проблема в том, что полученное электронное письмо показывает имя переменной (т.Е. vanilla18) вместо того, чтобы рассматривать его как переменную.
Я что-то пропустил. {([или где-то другой код?
Извините, что будьте так внимательны, но я не знаю, как еще это объяснить.
Заранее благодарю
2 answers
Это потому, что вы объединяете $row['prod_selectname']
как строку.
Прежде чем вы повторите каждую переменную, вам нужно назвать ее динамически, вот так:
$var_name = $row['prod_selectname'] . "0";
Когда вы повторяете переменную, это будет выглядеть так:
"<td>" . echo $$var_name . "</td>";
Попробуйте это:
<?php
while ($row = mysql_fetch_array($resultbline))
{
$var1 = $row['prod_selectname'] . "0";
$var2 = $row['prod_selectname'] . "6";
$var3 = $row['prod_selectname'] . "11";
$var4 = $row['prod_selectname'] . "18";
$var5 = $row['prod_selectname'] . "t";
$var6 = $row['prod_selectname'] . "24";
$var7 = $row['prod_selectname'] . "36";
$message .="<tr><td>"
. $row['prod_name']
. "</td><td> </td><td></td>
<td>" . $$var1 . "</td>
<td>" . $$var2 . "</td>
<td>" . $$var3 . "</td>
<td>" . $$var4 . "</td>
<td>" . $$var5 . "</td>
<td>" . $$var6 . "</td>
<td>" . $$var7 . "</td>
";
}
Но machineaddict опубликовал это первым... Так что отдайте ему должное. ;)