這篇文章主要講解了“Drupal7 form表單二次開發要點有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Drupal7 form表單二次開發要點有哪些”吧!
溫江ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯建站的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!主要匯總三個要點:
1.頁面提交后,經過#submit處理后,需要redirect 跳轉到另外一個頁面。
2.url路徑中存在destination參數時,頁面直接跳轉到destination所指的url,無法控制的問題。
3.form表單如何實現multiple steps forms 多個步驟,或者表單提交后,如何在表單獲取到提交上來的值。
一、Form 表單 redirect(跳轉)到另外一個頁面
$form_state['redirect'] 的值可以是字符串或者數組,值通過url后,生成跳轉地址。
復制代碼 代碼如下:
$form_state['redirect'] = array(
'node/123',
array(
'query' => array(
'foo' => 'bar',
),
'fragment' => 'baz',
}
//頁面將會跳轉到 node/123?foo=bar#baz
復制代碼 代碼如下:
$form_state['redirect'] = 'node/123'
//頁面將會跳轉到 node/123
如果不指定$form_state['redirect'] 的值,默認跳轉到當前頁面。drupal_goto(current_path(), array(‘query' => drupal_get_query_parameters())); API中是這樣執行的。
二、Form 表單 destination(目的地)被指定時也可以改變跳轉的地址
在drupal_goto 函數中,你可以看到如果url路徑中存在destination參數,頁面直接就到destination所指向的鏈接,導致某些表單下的多個按鈕提交后,本應redirect 跳轉的頁面也不盡不同。
于是在form的#submit 函數中,某些操作時可以直接刪除掉destination。
復制代碼 代碼如下:
if (isset($_GET['destination'])) {
$form_state['redirect'] = array('next_step_page_url', array('query' => drupal_get_destination()));
unset($_GET['destination']);
}
我采取的方法是,重新定義一個url并繼續傳遞destination,但是將$_GET中的destination刪除掉。但是一般還是會經常用到destination這個目的地的跳轉。
三、Form 表單 實現multiple steps多個步驟,Form表單重載,獲取Form提交的值
這些問題其實歸根到底都是一個意思,就是讓表單繼續提交下去。而不是刷新頁面。只需在form 表單的 #submit 函數中 執行以下代碼:
復制代碼 代碼如下:
if ($form_state['values']['op'] == t("Next Step")) {
$form_state['rebuild'] = TRUE;
$form_state['storage']['users'] = $form_state['values']['users'];
}
在form的define定義中即可獲取到$form_state['storage']['users']這個值。
參考Drupal7 相關API函數:
drupal_redirect_form
drupal_goto
drupal_get_destination
感謝各位的閱讀,以上就是“Drupal7 form表單二次開發要點有哪些”的內容了,經過本文的學習后,相信大家對Drupal7 form表單二次開發要點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯網站建設公司,,小編將為大家推送更多相關知識點的文章,歡迎關注!
文章標題:Drupal7form表單二次開發要點有哪些-創新互聯
本文來源:http://m.newbst.com/article32/dopdsc.html
成都網站建設公司_創新互聯,為您提供做網站、品牌網站制作、靜態網站、移動網站建設、網站維護、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯