фильтрация почтовых полей (используя fieldsets?)

Здравствуйте, у меня проблемы с фильтрацией значения моего поста. Когда я отправлю сообщение, он вернет массив вроде:

Array ( [db-table] => afdeling
[box-2] => 2
[box-3] => 3
[db-fields] => array( random fields )
[box-6] => 6
)

Форма состоит из 4 частей, сначала несколько текстовых полей, которые находятся внутри набора полей, затем 4 флажка с меткой 1 — 4 во втором наборе полей, затем еще несколько текстовых полей внутри набора полей с номером три и, наконец, еще 4 флажка с меткой 5-8 внутри четвертого поля. FIELDSET. наборы полей названы:

  • дб-tabledata
  • флажков-1
  • дб-fielddata
  • chechboxes-2

Я также искал такие вещи, как «фильтрация похожих именованных полей из поста» и пробовал это с некоторыми функциями массива, такими как array_keys / filter с 2 для циклов, чтобы получить их по частям, но я не смог заставить это работать.

В конце концов, я ожидаю отфильтровать массив в $_POST к такой структуре:

Array (
'db-data' =>    array( [db-table] => afdeling
[db-fields] => array( random fields )
),
'checkboxes' => array( [box-2] => 2
[box-3] => 3
[box-6] => 6
)
)

Так может ли кто-нибудь подтолкнуть меня в правильном направлении при фильтрации полей из массива?

Сложение:

В данный момент я пытаюсь упорядочить массив в алфавитном порядке, чтобы поле -? поля будут в начале или в конце массива.

Однако проблема в том, что коробка? поля могут встречаться от 1 до 8 раз. Поэтому мне нужен какой-то способ подсчета каждого ключа массива, который выглядит следующим образом: box- ?. Чтобы узнать, сколько из них есть.

0

Решение

Вы можете назвать свои поля, используя [], например:

<input name="db-data[db-table]" ... />
<input name="db-data[db-fields][first-field]" ... />
<input name="db-data[db-fields][second-field]" ... />

<input name="checkboxes[box-1]" ... />
<input name="checkboxes[box-2]" ... />

В этом случае ваш $_POST массив уже будет иметь ту структуру, которую вы хотите.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]