Вопрос по php, session, jquery, forms – Если переключатель установлен, то отправьте на другую страницу

1

У меня есть это:

<form method="post" id="kl" action="step2.php">

<input type="radio" name="rubrik" value="bussines"></input>
<input type="radio" name"rubrik" value="private"></input>

<input type="image" value="submit" src="/images/submit.png" alt="Submit" />

</form>

Что я хочу bassicaly: Когда установлен второй переключатель, отправьте форму в step2a.php, другой файл. Как я могу это сделать? JQuery, Javascript, PHP?

Конечно, вы можете сделать это с помощью Javascript, но Javascript не способ реализовать это, потому что он может и будет деактивирован в некоторых пользовательских браузерах. Лучше всего, если вы просто выполните все проверки в step2.php, а затем перенаправите пользователя на страницу, куда он должен перейти, через соответствующий заголовок HTTP. YMMD

Ваш Ответ

5   ответов
6

Вы можете сделать это с помощью JavaScript (связать слушателя отправки, который проверяет значение переключателя, а затем устанавливает свойство действия формы), но было бы проще и надежнее сделать что-то (на стороне сервера) в соответствии с:

<form ... action="step-selector.php">

а также

<?php
    if (isset($_POST['rubrik']) && $_POST['rubrik'] == 'bussines') {
        include('step2.php');
    } elseif (isset($_POST['rubrik']) && $_POST['rubrik'] == 'private') {
         include('step2a.php');
    } else {
         include('error-state.php');
    }
 ?>
Прекрасный ответ. Как раз то, что мне было нужно, именно то, что мне было нужно больше всего. Спасибо, Квентин! raz
-1

Вы можете использовать form.submit () в качестве обработчика onclick (не onchange) и изменить действие.

<input type="radio" name"rubrik" value="private" onclick="this.parentNode.action='yourOtherFile.php'; this.parentNode.submit()"></input>
0

Вы можете сделать это, изменив форму:

<form method="post" id="kl" action="step2.php">

<input type="radio" class="radio" rel="step2.php" name="rubrik" value="bussines"></input>
<input type="radio" class="radio" rel="step2a.php" name"rubrik" value="private"></input>

<input type="image" value="submit" src="/images/submit.png" alt="Submit" />

</form>

Я добавил атрибут rel к переключателям. у каждого есть значение URL. Я также добавил класс, чтобы получить элемент с jQuery.

Теперь вам понадобится Javascript, я буду использовать код jQuery:

$('.radio').click(function (){
   rad = $(this);
   radRel = rad.attr('rel');
   $('form#kl').attr('action', radRel);
});
rel имеет определенное значение (которое не является «атрибутом для хранения произвольных данных для JavaScript») и не появляется на элементах ввода. Не злоупотребляйте этим.
0
if($("input[@name=rubrik]:checked").val()=="private")
{
$("#kl").attr("action","step2a.php");
}

Теперь сделайте отправку.

Я не проверял код, надеюсь, он даст идею.

-1

Есть несколько способов сделать это, в зависимости от того, что вы хотите именно.

Проверьте это, это может помочь вам добраться;Радиокнопка для открытия страниц

Похожие вопросы