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

10 авг. 2017 г., 13:11:44
Просмотры: 59.9K
Голосов: 1

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

Но я не понимаю основ.

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

<?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]
3
Комментарии

Вы не можете вставлять PHP в содержимое записи. Рассмотрите возможность создания шорткода или пользовательского шаблона.

Milo Milo
10 авг. 2017 г. 16:10:11

Хорошо, я использовал плагин https://it.wordpress.org/plugins/insert-php/, и теперь, кажется, он работает, но я не смог получить доступ к полю формы (names). На их сайте я прочитал: "Код между тегами должен быть самодостаточным. Ссылки на переменные или блоки кода за пределами области между тегами не будут работать. Смотрите URL 'подробнее' для объяснения этого". Я не могу получить доступ к полю names из формы. Есть предложения?

Mario Stefanutti Mario Stefanutti
10 авг. 2017 г. 16:49:23

Привет, Мило. Это сработало. Я добавил ДОПОЛНЕНИЕ к исходному вопросу. Спасибо

Mario Stefanutti Mario Stefanutti
10 авг. 2017 г. 17:06:03
Все ответы на вопрос 1
5

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

<?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>

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

10 авг. 2017 г. 13:26:08
Комментарии

У меня всё ещё есть проблема с тем, чтобы заставить пост работать. Смотри дополнительные примечания.

Mario Stefanutti Mario Stefanutti
10 авг. 2017 г. 15:02:18

Вы предлагаете вставлять переменные $_POST напрямую в SQL-запрос без санации? Плохая идея

Robert Dundon Robert Dundon
10 авг. 2017 г. 17:55:27

Внимательно прочитай вопрос, @RobertDundon.

User User
11 авг. 2017 г. 08:10:23

с какой проблемой ты столкнулся @MarioStefanutti

User User
11 авг. 2017 г. 08:12:34

Уже решено: Проблема заключалась в том, чтобы подготовить WP пост с формой, затем использовать PHP для вызова внешнего JSON сервиса и после этого отобразить данные на той же странице. Мне не нужна была база данных. Я использовал плагин "insert-php" для вставки PHP кода в страницу. Что касается форм, их можно создавать непосредственно с помощью HTML или используя Ninja Forms или другие инструменты.

Mario Stefanutti Mario Stefanutti
11 авг. 2017 г. 16:16:42