Я создаю механизм управления, который должен управлять разделами, а затем страницами в разделах.
Для удобства использования было принято решение о том, что поля порядка отображения будут отображаться на странице листинга, что приводит к необходимости иметь форму, которая окружает разделы, а также одну для каждой из групп страниц.
Очевидным решением были формы вложенности, стандарты 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 для дальнейшего определения текстовых полей.
Благодарю вас, как всегда.
Вместо того, чтобы иметь разные атрибуты имени для ваших кнопок, я предлагаю вам сохранить имя так же, например 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); }