Форма с двумя кнопками submit с разным значением

<form action="here.php" method="POST"> <input type="text" name="text"> <div id="one"> <input type="hidden" name="aaa" value="one"> <input type="submit" value="Send"> </div> <div id="two"> <input type="hidden" name="aaa" value="two"> <input type="submit" value="Send"> </div> </form> 

Теперь, если я нажимаю «Отправить» div ONE или div TWO, я всегда в $ _POST ['aaa'] = 'two';

Возможно ли сделать одну форму с двумя отправкой с разными значениями?

Если я нажму на div, отправлю, мне бы хотелось показать $ _POST ['aaa'] = 'one', и если я нажму на div two submit, я бы хотел получить $ _POST ['aaa'] = 'two' .

Как я могу это сделать?

Я могу использовать для этого PHP и jQuery.

EDIT: я не хочу создавать две формы – я не хочу показывать два раза <input type="text" name="text">

EDIT: может быть, я могу вместо кнопки отправить? но как?

Кажется, что то, что вы на самом деле хотите сделать, это иметь значение в каждой из кнопок, см. Это , например:

 <form action="demo_form.asp" method="get"> Choose your favorite subject: <button name="subject" type="submit" value="fav_HTML">HTML</button> <button name="subject" type="submit" value="fav_CSS">CSS</button> </form> 

Вам понадобятся две разные формы:

 <div id="one"> <form ...> <input type="hidden" name="aaa" value="one"> <input type="submit" value="Send"> </form> </div> <div id="two"> <form ...> <input ...> <input ...> </form> </div> 

Стандартная практика заключается в том, что, когда два поля имеют одинаковое name , использовать только значение LAST, встречающееся в форме, и представить это.

PHP имеет специальную нотацию ( name="aaa[]" ), чтобы разрешить отправку нескольких значений с тем же именем, но это вам не поможет, так как это будет представлять ВСЕ значения aaa , а не только один ближе к кнопке отправки.


Форма HTML:

 <form ...> <input type="text" name="textfield"> <div id="one"> <input type="hidden" name="one_data" value="aaa" /> <input type="submit" name="submit_one" value="Submit" /> </div> <div id="two"> <input type="hidden" name="two_data" value="bbb" /> <input type="submit" name="submit_two" value="Submit" /> </div> </form> 

на стороне сервера:

 if (isset($_POST['submit_two'])) { $data = $_POST['two_data']; } else if (isset($_POST['submit_one'])) { $data = $_POST['one_data']; } else { die("Invalid submission"); } 

Вместо того, чтобы показывать две кнопки отправки, вы можете показать список радиостанций с двумя вариантами и одной кнопкой отправки.

Попробуй это:

в html-

  <input id="PreviousButton" value="Previous" type="submit" /> <input id="NextButton" value="Next" type="submit" /> <input id="Button" name="btnSubmit" type="hidden" /> 

в jOuery-

  $("#PreviousButton").click(function () { $("#Button").val("Previous"); }); $("#NextButton").click(function () { $("#Button").val("Next"); }); 

то вы можете увидеть в форме результаты – что содержится в «Button».