我想檢索一個cck字段「field_info」在我的表單alter當用戶提交時插入到另一個表。這似乎並不奏效。檢索cck字段for form_alter
//mymodule_form_alter() implemented
function mymodule_form_mysubmit{
$test = $form['field_info']['#value'];
//insert stuff code
}
代碼中是否有任何錯誤?
我想檢索一個cck字段「field_info」在我的表單alter當用戶提交時插入到另一個表。這似乎並不奏效。檢索cck字段for form_alter
//mymodule_form_alter() implemented
function mymodule_form_mysubmit{
$test = $form['field_info']['#value'];
//insert stuff code
}
代碼中是否有任何錯誤?
你說module_form_alter()
實施,但只是爲了確認,你必須有下列:
$form['#submit'][] = 'mymodule_form_mysubmit';
假設你,讓field_info的價值,你的提交功能,應該是這樣的:
function mymodule_form_mysubmit($form, &$form_state) {
$test = $form_state['values']['field_info'][0]['value'];
}
$form_state
包含正在提交的表單的當前狀態。 CCK總是假設一個字段可能有多個值,所以它總是將數組放在一個數組中(因此['field_info'][0]
)。
我找到了解決辦法
$test = $form['field_info'][0]['#value'];
的$形式陣列是不是安全的,因爲它包含了形式結構,而不一定是當前表單的值。在某些情況下 - 比如當drupal_execute提交表單時 - 值不會在那裏。使用$ form_state:它將始終包含值,並且它是Drupal方式。 – 2010-07-25 06:57:30
非常感謝您的評論。我將開始使用它。 – charan 2010-07-25 12:11:36