Определение кнопки, используемой для отправки с помощью PHP

Я создаю механизм управления, который должен управлять разделами, а затем страницами в разделах.

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

Предварительный просмотр макета, показывающий соответствующие поля

Очевидным решением были формы вложенности, стандарты xhtml и html5 предотвращают довольно очевидные причины. Поэтому я сейчас обрабатываю всю страницу как единую форму, а затем решая, какие данные использовать на основе кнопки, нажатой для отправки данных.

Проблема заключается в том, что кнопки имеют динамические имена, которые генерируются на основе идентификатора раздела.

<button type="submit" class="btn bg-blue2 btn-gradient btn-xs" name="order:pages:<?=$GAS['uid'];?>"><span class="glyphicons glyphicons-roundabout"></span> </button> 

Имя кнопки создается для каждой группы страниц, используя идентификатор родительского раздела. Делая это, я могу выбирать только текстовые поля, которые имеют определенный префикс и обрабатывают эти данные.

Мой вопрос: как я могу определить, какая кнопка используется для отправки формы на странице обработки. Я рассмотрел использование var_dump($_POST) и substr() но не знаю / не понимаю, как правильно подходить к нему.

Конечный результат должен позволить мне получить имя используемой кнопки (order: pages: id), а затем отделить ее с помощью substr, чтобы я мог использовать id для дальнейшего определения текстовых полей.

Благодарю вас, как всегда.

Solutions Collecting From Web of "Определение кнопки, используемой для отправки с помощью PHP"

Вместо того, чтобы иметь разные атрибуты имени для ваших кнопок, я предлагаю вам сохранить имя так же, например name="edit_btn" .

Затем вы можете просто поместить идентификатор в атрибут value кнопок и прочитать его с помощью $_POST['edit_btn'] на стороне PHP.

HTML:

 <button type="submit" value="<?=$ID;?>" name="edit_btn">Edit</button> 

PHP:

 var_dump($_POST['edit_btn']); 

Если вы по какой-то причине INSIST сохраняете идентификатор в NAME, вы можете сделать что-то вроде этого:

HTML:

 <button name="edit_btn[123]" value="1">Edit</button> 

PHP:

 var_dump(key($_POST['edit_btn'])); 

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

Код кнопки:

 <button type="submit" class="btn bg-blue2 btn-gradient btn-xs" name="reorder" value="pages:<?=$GAS['uid'];?>"><span class="glyphicons glyphicons-roundabout"></span> </button> 

Определение используемой кнопки (только для тестирования отладки!):

 if($_POST['reorder'] == "sections"){ echo 'DEBUGGER ACTIVATED: SUBMITTED SECTIONS FOR RE-ORDER'; } if(substr($_POST['reorder'], 0, 6) == "pages:"){ echo 'DEBUGGER ACTIVATED: SUBMITTED PAGES FOR RE-ORDER FOR SECTION #'.substr($_POST['reorder'], 6); }