Создание HTML-таблицы с POST

#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. Отлично! Спасибо за помощь.