Как исправить код для перехода на разные страницы в соответствии с переключателем, выбранным с помощью одной формы - PullRequest
1 голос
/ 08 мая 2019

Я хочу перейти на разные шаблоны (страницы) независимо от того, что выбрано (переключатель) из одной формы. Я хочу включить в форму только одну кнопку.

Здесь, как будто кто-то выбирает template1, я буду на странице template1.php. Если я выберу template2, я пойду на template2.php.

Я сохранил приведенный ниже код как form.php

<form method="POST" action=
                          "<?php if(($rb = $_POST('template'))=='1'){?>
                                          template1.php 
                           <?php } 
                            if(($rb = $_POST('template'))=='2'){?>
                                          template2.php 
                            <?php } ?>"
                            enctype="multipart/form-data"> 
         <label>First Name: </label>
         <input type="text" name="firstname">
         <label>Last Name: </label>
         <input type="text" name="lastname">
         <input type="radio" value="1" name="template">Template 1
         <input type="radio" value="2" name="template">Template 2
         <button type="submit" name="upload">POST</button>      

  </form>

1 Ответ

2 голосов
/ 08 мая 2019

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

Создайте прослушиватель событий для клика по входу с именем template. Затем переключите действие в соответствии с этим.

$("input[name=template]").on("click", function() {
  var action = "";
  switch($(this).val()) {
    case "1":
      action = 'template1.php';
      break;
    case "2":
      action = 'template2.php';
      break;
  }
  $(this).parent("form").prop("action", action);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="POST" action="" enctype="multipart/form-data"> 
         <label>First Name: </label>
         <input type="text" name="firstname">
         <label>Last Name: </label>
         <input type="text" name="lastname">
         <input type="radio" value="1" name="template">Template 1
         <input type="radio" value="2" name="template">Template 2
         <button type="submit" name="upload">POST</button>      

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