Добрый день! Есть несколько полей формы "textfield". Имена этих полей имеют вид:
<input... name="user_counters[1][3410]" value="" ... type="text">
<input... name="user_counters[2][132805]" value="" ... type="text">
<input... name="user_counters[3][3413]" value="" ... type="text">
<input... name="user_counters[4][5]" value="" ... type="text">
<input... name="user_counters[2][132805]" value="" ... type="text">
<input... name="user_counters[3][3413]" value="" ... type="text">
<input... name="user_counters[4][5]" value="" ... type="text">
Как я могу получить все значения из этих полей?
Заранее благодарю!
Комментарии
где получить?
«где получить?»
В стандартных методах validateForm() и submitForm(). Нужно для валидации и дальнейшей работы с введенными данными
$form_state
«$form_state»
Ф-я
<?php
drupal_set_message($form_state->getValue('user_counters[1][3410]'));
?>
Вообще ничего не выводит (ни ошибок, ни значений, пусто)
dpm($form_state)
<?php
public function validateForm(array &$form, FormStateInterface $form_state) {
echo '<pre>'.print_r($form_state, true).'</pre>';
}
?>
В итоге пустая страница
у вас devel стоит?
нет, ибо стандартные ф-и отладки PHP до сегодняшнего дня меня устаивали)
drupal 8, OOP, print_r...
это даже не смешно
надеюсь хоть не в блокноте код правите...
"Вообще ничего не выводит (ни ошибок, ни значений, пусто)"
"В итоге пустая страница"
Логично сделать вывод, что функция валидации вообще не вызывается.
"ибо стандартные ф-и отладки PHP до сегодняшнего дня меня устаивали)"
тогда уж пора узнать про var_dump хотя бы http://php.net/manual/ru/function.var-dump.php
Пусть будет вардамп. Р-т: белая страница.
А вот на счет замечания "Логично сделать вывод, что функция валидации вообще не вызывается" - посмотрю.
Можно допустить, что проблема именно в getValue('user_counters[1][3410]') ? А точнее в присутствии квадратных скобок. Ибо если имена полей типа "name_1", то getValue('name_1') работает отлично
"Р-т: белая страница."
var_dump($form_state) вешает сервер? Ну-ну. Выясняйте причину, а потом уже дебажьте дальше.