Доступ к текущему значению элемента формы в Drupal - PullRequest
1 голос
/ 11 февраля 2010

У меня есть поле в форме узла CCK, которое скрыто и имеет значение по умолчанию. То, что я пытаюсь сделать, это когда пользователь заполняет форму и отправляет ее - я хочу взять значение скрытого поля и использовать его для запроса.

Мой вопрос: как я могу получить это значение? В PHP / HTML может использоваться переменная $ POST. Но как я могу сделать это в drupal?

Я пробую варианты этого:

$form['#field_tst_timesheet']['value']

Кто-нибудь знает, как я могу получить значение этого поля?

Ответ Вфиллби:

Ввод этого:

 $ts =  field_tst_timesheet['0']['value'];
 drupal_set_message($ts);

В результате возникла ошибка синтаксического анализа: синтаксическая ошибка, неожиданная '['?

Ответы [ 2 ]

4 голосов
/ 26 февраля 2010

Вы близко, но у вас есть идентификаторы в обратном направлении. Попробуйте вместо этого:

$form['field_tst_timesheet']['#value']

Для форм ключ, который получит POST -ed, является атрибутом name элемента формы, а не элементом id.

0 голосов
/ 19 февраля 2010

Не полный ответ, но я помню, что у CCK были некоторые странности при непосредственном доступе к значениям полей. Я помню, что мне нужно было получить доступ к значению поля, как это

field_cck_custom_field['0']['value'].  

В зависимости от типа поля ['value'] может быть ['nid'] или что-то подобное.

Если значение поля внедрено в форму, вам, возможно, придется использовать средства доступа в стиле cck, чтобы получить значение формы (которое фактически является полем cck)

Если у вас нет настройки среды xdebug, одним из удобных способов отладки объектов drupal является использование var_export и drupal_set_message, например:

<code>drupal_set_message( '<pre>' . var_export( $form['#field_tst_timesheet']['value'], TRUE ) . '
');

Это должно довольно распечатать объект в разделе сообщений drupal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...