Пост + форма + действие + результаты на одной странице

Вопрос или проблема

Я пытаюсь разместить на странице пользовательскую форму и на той же странице хочу визуализировать результаты действия с формой.

Но я упускаю основы.

По сути, я хотел бы сделать что-то подобное. Это возможно?

<?php
    if(isset($_REQUEST['submit_btn']))
    {
       echo "<div>";
       $name = $_POST["names"];
       echo "</div>";
    }
?>

<form action="" method="POST">
   <input type="text" name="names" id="names">
   <input type="submit" value="отправить" name="submit_btn">
</form>

ДОПОЛНЕНИЕ (после ответа от Tejas gajjar):

Спасибо за ответ. На самом деле, мне не нужно взаимодействовать с БД, поэтому я удалил некоторые предложенные строки.

Если я использую это:

введите описание изображения здесь

Вопрос: Знаете ли вы, почему это отображается так?:

введите описание изображения здесь

ДОПОЛНЕНИЕ (после комментария от Milo):

Хорошо, это сработало. Я даже смог получить доступ к полю формы.

<form action="" method="POST">
   <input type="text" name="names" id="names">
   <input type="submit" value="отправить" name="submit_btn">
</form>

[insert_php]
    if(isset($_REQUEST['submit_btn']))
    {
       echo "<div>";
       $name = $_POST["names"];
       echo "</br>";
       echo "ОТВЕТ:</br></br>", $name;
       echo "</div>";
    }
[/insert_php]

Используйте этот код

<?php
    if(isset($_REQUEST['submit_btn']))
    {
       echo "<div>";
       $name = $_POST["names"];
       echo "</div>";
       $ins="insert into tablename (fieldname)values('$name') ";                
       $conn->query($ins);
       ?>
       <script>
       alert('успешно добавлено');
       </script>
       <?php
          $sel="select * from tablename";
          $r=$conn->query($sel);
          while($u=$r->fetch_object())
          {
      echo $u->fieldname;
          }
    }
?>

<form action="" method="POST">
   <input type="text" name="names" id="names">
   <input type="submit" value="отправить" name="submit_btn">
</form>

Надеюсь, это поможет вам

Ответ или решение

Конечно, давайте рассмотрим, как реализовать форму, обработку данных и отображение результатов на одной странице с помощью PHP.

Пример PHP-кода с формой и отображением результатов

<?php
// Проверяем, была ли отправлена форма
if (isset($_REQUEST['submit_btn'])) {
    // Получаем значение из поля формы
    $name = htmlspecialchars($_POST["names"]); // Используем htmlspecialchars для экранирования ввода
    echo "<div>";
    echo "<br>";
    echo "Ответ: <br><br>" . $name; // Отображаем полученное имя
    echo "</div>";
}
?>

<form action="" method="POST">
    <input type="text" name="names" id="names" required placeholder="Введите ваше имя">
    <input type="submit" value="Отправить" name="submit_btn">
</form>

Объяснение кода

  1. Проверка отправки формы:

    • Используя isset(), мы проверяем, была ли отправлена форма через кнопку submit_btn.
  2. Получение данных:

    • Извлекаем значение поля с именем names и применяем htmlspecialchars(), чтобы предотвратить XSS-атаки (внедрение скриптов).
  3. Отображение результата:

    • Если форма отправлена, выводим значение в блоке <div>. Результат отображается непосредственно под формой на той же странице.
  4. Форма:

    • Форма создается с методом POST, чтобы данные не отображались в URL.
    • Поле ввода имеет атрибут required, чтобы гарантировать, что пользователь введет значение.

Как предотвратить проблемы

  • Если вы собираетесь работать с базой данных, обязательно используйте подготовленные запросы (prepared statements) для предотвращения SQL-инъекций.
  • Не забудьте про проверку и экранирование пользовательского ввода.

Дополнительный комментарий

Если вы сталкиваетесь с проблемами рендеринга или отображения значений, убедитесь, что:

  • Ваш сервер правильно настроен для обработки PHP файлов.
  • Код находится в файле с расширением .php, а не .html.
  • Убедитесь, что в HTML нет лишних символов или тегов, которые могут мешать работе скрипта.

Этот код должен помочь вам добиться желаемого результата, отображая форму и результаты на одной странице. Если у вас есть дополнительные вопросы или вам нужна помощь с конкретными аспектами, не стесняйтесь задать!

Оцените материал
Добавить комментарий

Капча загружается...