2010-11-23 73 views
0

我已經爲客戶端創建了一個客戶端信息存儲和客戶端可以登錄和查看窗體的webform,但是當客戶端查看窗體時會顯示提交表,然後客戶端必須點擊在運行視圖中顯示的結果,我想實現一個函數,所以它可以重定向客戶端直接實際結果,而不是提交表,而管理提交表應該在那裏...我想我需要在自定義模塊中實現hook_menu_alter()...想知道是否有人可以幫我使用hook_menu_alter()的代碼...提交表的url是「node/$ nid/submission」,結果是「node/$ NID /提交/ $ SID」。謝謝Drupal - hook_menu_alter for webform

回答

0

您不需要hook_menu_alter在表單提交後重定向。 您可以簡單地添加一個#redirect$formhook_form_submit()

應該是這樣的:

function hook_form($form_state){ 
    // $form[] definition here 
    $form[] = array(
     '#type' => 'submit', 
     '#value' => 'Submit Me!', 
     '#submit' => array('hook_form_submit'), 
    ); 
} 

function hook_form_submit($form,&$form_state){ 
    // sanitize/save your data here! 
    $form_state['redirect'] = 'redirect/me/to/somewhere/else'; 
} 
+0

謝謝安德烈,但實際上表格將被提交通過管理員爲用戶,然後用戶可以登錄和查看錶格...但他們需要先提交結果,然後再提交給實際提交數據..我需要刪除用戶的提交結果...所以當用戶登錄..他們可以立即查看提交的數據... – sumit 2010-11-23 16:58:27

+0

我不知道我得到你想要的...你的意思是「用戶可以查看錶單」?用戶和管理員是否應該查看完全相同的表單?什麼是「提交結果」?我想我需要查看一些輸出示例(用戶和管理員)以獲得您的想法... – acm 2010-11-23 17:16:21

0

yes..both用戶和管理員查看相同的形式... N管理員會代表用戶填寫表格並將作者設置爲用戶,以便用戶可以查看填充的信息,因爲我們將用戶權限設置爲「訪問自己的結果」。現在,問題是當用戶查看網絡表單結果時,他首先得到一個'表格',它顯示'日期'和'操作',並且在用戶點擊'查看'時顯示正在顯示的填充信息。所以,我只是想知道,如果我們可以使用hook_menu_alter來改變它,而不是那個'表',它直接顯示給用戶的填充信息...謝謝你..