<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».