@thesirvlad

Как мне не создавая кучу переменных автоматизировать процесс?

В бд имею следующие столбцы:

question_number
answer
question_image
subject

Я делаю админку, где при желании могу изменить нужный ответ в определенном задании и т.п.

<?php
                      while($row = mysqli_fetch_array($query)) { 
                    ?>
                      <div class="task-input mt-100">
                          <div class="auth-form-input">
                          <span class="form-item-icon material-symbols-outlined">tag</span>
                            <input class="input-form" placeholder="Номер вопроса" type="text" value="<?php echo $row['question_number']; ?>" required name="question_number">
                          </div>
                          <div class="auth-form-input">
                          <span class="form-item-icon material-symbols-outlined">link</span>
                            <input class="input-form" placeholder="url картинки" type="text" value="<?php echo $row['question_image']; ?>" required name="question_image">
                          </div>
                          <img class="news-card-img" style="max-width:1000px; height:100%;display:block;margin-left: auto;margin-right: auto;" src="<?php echo $row['question_image']; ?>" alt="Задание">
                          <div class="auth-form-input">
                          <span class="form-item-icon material-symbols-outlined">playlist_add_check_circle</span>
                            <input class="input-form" placeholder="Ответ" type="text" value="<?php echo $row['answer']; ?>" required name="answer">
                          </div>
                      </div>
                      <hr>
                    </div>
                    </div>
                <?php
                }
                ?>

Как вы можете понять, инпутов с name'oм "Answer" может быть 1-100, и в бд во все сто полей будет записываться значение последнего инпута.
Я сделал так:

<input class="input-form" placeholder="Ответ" type="text" value="<?php echo $row['answer']; ?>" required name="question_answer_<?php echo $row['question_number']; ?>">

Т.е , к нейму добавил намбер вопроса => но как мне теперь записывать эти неймы в переменные? Этих задания может быть рандомное кол-во, я не могу заранее просто написать так

$answer1 = $_POST['question_answer_1'];
  $answer2 = $_POST['question_answer_1'];

и т.д.
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sepetov
Программист Navision, программист PHP
Можно сделать ваш input вот таким:
<input type="text" value="<?php echo $row['answer']; ?>" name="answer[]">

Это будет работать. В $_POST['answer'] в итоге будет лежать массив выбранных ответов.

Можно ещё и так сделать:
<input type="text" value="<?php echo $row['answer']; ?>" name="answer[<?php echo $row['question_number']; ?>][]">

В $_POST['answer'] тоже будет массив, ключами которого будут номера вопросов, а значениями - массивы с ответами.

Идея понятная, сможете дальше сами, или нужна ещё помощь?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы