Подтвердить что ты не робот

Несколько кнопок отправки php разных действий

У меня есть веб-сайт, где я хочу иметь две отдельные кнопки отправки, одна из которых будет принимать введенные данные и делать некоторые вычисления для отображения на том же экране. Я успешно справился с этим:

<form id="form1" name="form1" method="post" onsubmit="" onreset="" action="programname.php">
<input type="submit" name="calc" value="Find Angle">

а затем я использую:

if (!isset($_POST['submit'])){
Do actions, display calculations}

Теперь я хочу вторую кнопку отправки, которая по-прежнему захватывает введенные данные, а затем переходит к другому адресу. Есть ли элегантный способ сделать это?

4b9b3361

Ответ 1

Вы можете добавить метод onclick к новой кнопке отправки, которая изменит действие формы и затем отправит ее.

<script type="text/javascript">
  function submitForm(action) {
    var form = document.getElementById('form1');
    form.action = action;
    form.submit();
  }
</script>

...

<form id="form1">
  <!-- ... -->
  <input type="button" onclick="submitForm('page1.php')" value="submit 1" />
  <input type="button" onclick="submitForm('page2.php')" value="submit 2" />
</form>

Ответ 2

Вы можете изменить действие формы, используя formaction = "page1.php" в свойстве кнопки.

<form id="form1" name="form1" method="post" onsubmit="" onreset="" action="programname.php">
    <input type="submit" name="calc" value="Find Angle">

    <input type="button" type="submit" formaction="page1.php">Action 0</button>
    <input type="button" type="submit" formaction="page2.php">Action 1</button>
</form>

Примечание. Атрибут formaction тега кнопки не поддерживается в Internet Explorer 9 и более ранних версиях.

Ответ 3

Лучший способ справиться с несколькими кнопками отправки - это использовать случай переключения в действии script

<form action="demo_form.php" method="get">

    Choose your favorite subject:

    <button name="subject" type="submit" value="html">HTML</button>
    <button name="subject" type="submit" value="css">CSS</button>
    <button name="subject" type="submit" value="javascript">Java Script</button>
    <button name="subject" type="submit" value="jquery">jQuery</button>

</form>

Сторона действия/сервера script:

demo_form.php

<?php

switch($_REQUEST['subject']) {

    case 'html': //action for html here
                break;

    case 'css': //action for css here
                break;

    case 'javascript': //action for javascript here
                        break;

    case 'jquery': //action for jquery here
                    break;
}

?>

Ссылка: W3Schools