У меня есть веб-сайт, где я хочу иметь две отдельные кнопки отправки, одна из которых будет принимать введенные данные и выполнять некоторые вычисления для отображения на том же экране. Я успешно работаю с:
<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}
Теперь я хочу вторую кнопку отправки, которая по-прежнему захватывает введенные данные, а затем переходит к другому адресу. Есть ли элегантный способ сделать это?
Вы можете добавить метод 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>
Вы можете изменить действие формы, используя 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 и более ранних версиях.
Лучший способ справиться с несколькими кнопками отправки – это использовать случай переключения в скрипте действия
<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>
Action / Server Side 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