我已經使用hook_form_FORM_ID_alter()函數來改變一個menu_edit_menu的形式來添加幾個字段。我在執行提交操作時將這些字段的值存儲在表中。我現在需要的是當特定的表單條目再次被加載進行編輯時。在表單加載之前,這些字段應該填充數據庫中的數據。誰能告訴我如何做到這一點。如何在表單加載到drupal 7之前用數據庫值填充文本區域?
我試過用hook_validate()函數,但是在執行提交操作時調用這個函數,在這方面沒有用。我必須在表單呈現之前執行數據庫查詢,以使用表中的數據填充文本字段。請向我提供一些有關如何實現這一點的見解。
我與SQL SELECT查詢以及/
$query = db_select('menu_custom');
$query
->fields(array('menu_name','role1','role2','role3'))
->condition('check',1,'=')
->conditon('title',$form_state['values']['title'])
->execute();
foreach($query as $record)
{
$mname = $result ->menu_name;
$rl1 = $result -> role1;
$rl2 = $result -> role2;
$rl3 = $result -> role3;
dpm($mname." ".$rl1);
}
我得到的錯誤,我的領域規格是錯誤的一個問題,但我不能沒有搞清楚的問題。
我還有一個問題。如何在加載之前訪問標題。當我不得不編輯表格時。標題字段的值被設置爲默認值,我需要獲取該值以在查詢中使用。我試圖通過$ form_state ['values'] ['title']來訪問它,但它沒有幫助。你能告訴我怎樣才能得到這種形式的數據。 – H4v0cCr8oR 2012-03-22 14:15:22
這取決於......數據庫中的哪個位置在表單提交時保存標題? – Clive 2012-03-22 14:22:11
標題存儲在menu_custom表中。當以前添加的菜單是從結構 - >菜單選項編輯的。標題應在edit_menu_edit表單加載之前提取,並在其各自的文本字段中添加role1,role2和role3的值。 – H4v0cCr8oR 2012-03-22 16:19:43