У меня есть форма, которая имеет 3 кнопки отправки. Их имена генерируются и назначаются в цикле. Теперь, если я использую метод post, как можно получить доступ к названию кнопки отправки, которая была нажата.
Ниже приведен пример моего кода:
**one.php** <form name="one" method="post" action="two.php"> <?php while($i=1;$i<=3;$i=$+1) { ?> <button type="submit" name="<?php echo $i ?>" value="<?php echo $i ?>" > </button> <?php } ?> </form> **two.php** { code??????? }
Может быть, я могу использовать атрибут onsubmit для тега кнопки в one.php, но я не могу получить результат. Какие-либо предложения?
Вы можете просто проверить $_POST
если есть запись с именем каждой из трех кнопок:
for ($i=1 ; $i<=3 ; $i++) { if (isset($_POST[$i])) { // here, you are on the clicked button } }
Обратите внимание, что я предлагаю вам дать вашим именам лучшие имена (которые не начинаются с числа), что означает создание вашей формы следующим образом:
<?php for ($i=1 ; $i<=3 ; $i++) { ?> <button type="submit" name="button_<?php echo $i ?>" value="<?php echo $i ?>" > </button> <?php } ?>
И, по представлению формы, используя что-то вроде этого:
for ($i=1 ; $i<=3 ; $i++) { if (isset($_POST['button_' . $i])) { // here, you are on the clicked button } }
BTW: синтаксис вашего цикла while неверен – кажется, вы перепутали while
и for
😉
Сгенерировать другой элемент ввода
<input type="hidden" name="buttonId" value="<?php echo $i ?>" />
И затем получите свой идентификатор с $_REQUEST['buttonId']