html - php отправить форму на той же странице - выпуск iframe - PullRequest
0 голосов
/ 13 апреля 2020

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

   <body>

    <div class="all">
   <form action="<?=$_SERVER['PHP_SELF'];?>" method="post" target="my_frame">

   <div class="form-group">
     <label class="col-md-4 control-label" for="numberOfMonths">Number of months</label>  
     <div class="col-md-1">
     <input id="numberOfMonths" name="numberOfMonths" type="text" placeholder="" class="form-control input-md">

     </div>

     <label class="col-md-4 control-label" for="sendbutton"></label>
     <div class="col-md-4">
       <button id="sendbutton" name="sendbutton" class="btn btn-primary">Calculate</button>
     </div>
   </div>
   <div class="answers">
<iframe name="my_frame" class="my_frame_class" style="border:none;" ></iframe>
   </div>
   </div>
   </form>

       </body>

Проблема, с которой я сталкиваюсь, заключается в том, что после отправки сообщения iframe показывает всю страницу внутри себя, и я действительно не могу понять, почему.

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Если вы прочитаете документацию по iframe , вы поймете, что iframe - это именно то. Новая независимая страница в рамке. Вы также можете прочитать о PHP, включая .

Чтобы получить опубликованное значение на той же странице, вам нужно просто удалить часть действия формы и оставить ее пустой, чтобы она отправлялась сама. И поймайте переменные обычным методом POST, попробуйте код ниже. Вам также не хватает типа кнопки type="submit". И сохранить страницу с расширением. php.

 <body>

    <div class="all">
   <form action="" method="post"  target="my_frame">

   <div class="form-group">
     <label class="col-md-4 control-label" for="numberOfMonths">Number of months</label>  
     <div class="col-md-1">
     <input id="numberOfMonths" name="numberOfMonths" type="text" placeholder="" class="form-control input-md">

     </div>

     <label class="col-md-4 control-label" for="sendbutton"></label>
     <div class="col-md-4">
       <button id="sendbutton" name="sendbutton" type="submit" class="btn btn-primary">Calculate</button>
     </div>
   </div>

   <div class="answers">
<?php    if (isset($_POST['sendbutton'])) {
   $numberOfMonths = $_POST['numberOfMonths']; 
   echo  $numberOfMonths; 
}
   ?>

   </div>
   </div>
   </form>
   </body>
0 голосов
/ 13 апреля 2020

Проблема, с которой я сталкиваюсь, заключается в том, что после отправки сообщения iframe показывает всю страницу внутри себя, и я действительно не могу понять, почему.

action - это URL текущей страницы.

Так что, если у вас нет лога c, который показывает HTML страницы, если это запрос GET, и что-то еще, если это запрос POST, вы получите HTML страницы во фрейме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...