我正在使用CCK類型的hook_form_alter(對於您的drupal-ers)。我有一個字段,通常是我節點表單中的一個選擇列表。但是,在這種情況下,我想隱藏選擇列表,並用SQL查詢填充表單中的值。Drupal 6:只將值的第一個字符插入到MySQL
一切都很好。我可以看到我的期望值顯示在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,它仍然只提交整數的第一個字符。此外,我刪除提交處理程序作爲一個可能的原因刪除它,仍然導致只提交一個字符
更多更新 - 仍在搜索! 好的,一些很好的問題。讓我回答:
- 的DB列類型是整數(4)
鉤產生的HTML是:
INPUT TYPE = 「隱藏」 名稱= 「field_sr_account」 ID =」編輯場-SR-賬戶」值=‘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
)
什麼是我可以設置表單值的字段的結構。這得是什麼像什麼abhaga是在暗示..
我們能否看到您將代碼賦值給$ club的代碼? – 2010-01-09 21:59:19
好的 - 我更新了原文。這是位於自定義模塊中的所有相關代碼。 – tpow 2010-01-09 22:09:44