Я работаю с hook_form_alter для типа CCK (для вас, друзья). У меня есть поле, которое обычно является списком выбора в форме моего узла. Однако в этом случае я хочу скрыть список выбора и заполнить его значение в форме запросом SQL.
Все шло хорошо. Я мог видеть, что мое желаемое значение показывалось в источнике HTML, поэтому я знал, что мой запрос выполняется правильно. Однако когда я отправляю форму, она вставляет только первый символ значения. Некоторые из моих тестов были значения 566, 784, 1004 - значения столбца были 5,7,1, соответственно.
Сначала я подумал, что это должны быть атрибуты столбца БД, но когда я удалил свой form_alter, который скрывает поле и вручную выбрал значение, вставляется правильное значение?
<?php
function addSR_form_service_request_node_form_alter(&$form, $form_state) {
if (arg(0) == 'user' && is_numeric(arg(1))) {
$account = arg(1);
$club = 2589;
$form['field_sr_account'] = array( '#type' => 'hidden',
'#value' => $club
);
}
}
?>
Кто-нибудь может понять, почему будет вставлен только первый символ ??
Примечание. Я попытался удалить и воссоздать столбец, используя #value & #default_value, и он по-прежнему передает только первый символ целого числа. Кроме того, я исключил обработчик отправки в качестве возможной причины, удалив его, в результате чего был отправлен только один символ
Больше обновлений - поиск продолжается!
Хорошо, несколько хороших вопросов. Позвольте мне ответить на них:
- Тип столбца БД целое число (4)
HTML-код, который создает хук:
input type = "hidden" name = "field_sr_account" id = "edit-field-sr-account" value = "2589"
Последнее обновление: я думаю, что проблема была сужена до структуры массива. Когда я делаю var_dump для этого поля после обработки изменения формы, это то, что я получаю ..
[43] => Array
(
[#type] => hidden
[#default_value] => 2589
[#post] => Array
(
)
[#programmed] =>
[#tree] =>
[#parents] => Array
(
[0] => field_sr_account
)
[#array_parents] => Array
(
[0] => field_sr_account
)
[#weight] => 0.016
[#processed] => 1
[#description] =>
[#attributes] => Array
(
)
[#required] =>
[#input] => 1
[#process] => Array
(
[0] => form_expand_ahah
)
[#name] => field_sr_account
[#id] => edit-field-sr-account
[#value] => 2589
[#defaults_loaded] => 1
[#sorted] => 1
)
Какова структура поля, в которое я могу установить значение формы. Должно быть что-то вроде того, что предлагает Абхага ..