#php #html #forms #post
#php #HTML #формы #Публикация
Вопрос:
Я пытаюсь создать веб-страницу, которая принимает пользовательский ввод, публикует его на странице создания, а затем создает другую веб-страницу, отображающую данные в таблице html. Я использую file_put_contents для создания веб-страницы, и я получаю сообщение об ошибке всякий раз, когда пытаюсь включить цикл для вывода содержимого из 3 td. Вот что у меня есть на данный момент. Я упомяну, что я опубликовал ранее, однако я удалил это, поскольку этот пост был запутанным, не хватало деталей и примеров.
Это поле ввода для пользователя (поле удаления не публикуется) Пользователь введет: ингредиент, количество и примечание (txt — пустая переменная).
<tr><td><input type='checkbox' name='deleteBox'></td><td>" "<input type='text' name='ingredient[]' value='" txt "'/>" "</td><td>" "<input type='text' name='amount[]' value='" txt "'/>" "</td> <td>" "<input type='text' name='note[]' value='" txt "'/>" "</td></tr>
Я пробовал нижеприведенное как с циклом for в переменной, так и с прямым вводом ее в $strOut . Я действительно не знаю, так ли вы должны это делать (явно нет, поскольку это не работает -> выдает неожиданную ошибку «для» в строке 42 [строка $ tbl]) и не могу найти обходной путь. Как мне сделать так, чтобы данные массива отображались в выходных данных для file_put_content, чтобы они не создавали ошибок?
$ingredient = $_POST['ingredient'];
$amount = $_POST['amount'];
$note = $_POST['note'];
$tbl = for ($i = 0; $i < count($ingredient); $i ) {
echo '<tr>';
echo '<td>' . $ingredient[$i] . '</td>';
echo '<td>' . $amount[$i] . '</td>';
echo '<td>' . $note[$i] . '</td>';
echo '</tr>';
}
$strOut = '<!DOCTYPE html>'
. '<table class="recipe-ingredients">'
. '<tr>'
. '<th class="table-th-large">Ingredient</th>'
. '<th class="table-th-medium">Amount</th>'
. '<th class="table-th-xl">Note</th>'
// User input tr goes here
. $tbl
. '</table>';
// Closing html tags after
file_put_contents("example.php", $strOut);
Любые предложения или обходные пути будут высоко оценены.
Ответ №1:
$tbl = '';
for ($i = 0; $i < count($ingredient); $i ) {
$tbl.= '<tr>';
$tbl.= '<td>' . $ingredient[$i] . '</td>';
$tbl.= '<td>' . $amount[$i] . '</td>';
$tbl.= '<td>' . $note[$i] . '</td>';
$tbl.= '</tr>';
}
Используйте это.
Кстати, вы забыли поставить закрытие </tr>
в строке заголовка.
Комментарии:
1. Отлично! Спасибо за помощь.