本文實例分析了drupal的url傳值和表單傳值。分享給大家供大家參考。具體分析如下:
drupal的傳值很有意思,不過我做的時候都是在編寫模塊時用的,不知道別人怎么做的。
這個傳值相當(dāng)于普通php的url
地址是.這個的傳遞方法大概是這樣的:
代碼如下:
$items['aaa/%'] = array(
'title' => 'aaa',
'page callback' => 'show_sub',
'page arguments' => array(1),
'access callback' => true,
'access arguments' => '',
'type' => menu_normal_item,
);
function show_sub($cat1 = ''){
echo $cat1;
}
這樣就把aaa/后面的這個值傳到函數(shù)show_sub里了。舉個例子,您訪問的是,在這個頁面上
就會輸出hello這個值。如果page arguments這樣的話
復(fù)制代碼代碼如下:page arguments => array(1,2,3)那么對應(yīng)的函數(shù)這么傳值
復(fù)制代碼代碼如下:function show_sub($aa = '',$bb = '', $cc = ''){
echo $aa.$bb.$cc;
}那么當(dāng)您訪問
world/fine這個地址時就會輸出helloworldfine。這個是url傳值。它的具體用法還要大家多多實驗,我也不能說的
很清楚。
另一個想說的是form傳值。它和url傳值有點類似。
復(fù)制代碼代碼如下:print drupal_get_form('test_form', $node);
//表單函數(shù)上就可以接收到了。
function test_form(&$form_state, $node){//注意這里是$node,也就是說可以直接傳進來個數(shù)組的值。
$form['title'] = array(
'#type'=> 'textfield',
'#title' => '主題',
'#default_value' => 11111,//默認(rèn)值
'#maxlength' => 128,//長度
);
return $form;
}
這個可以隨便放到一個主題里的page.tpl.php就能看到效果,另一種方法還是hook_menu,原理和url傳值是一樣的。就是
代碼如下:
$items['aaa/%'] = array(
'title' => 'aaa',
'page callback' => 'drupal_get_form',
'page arguments' => array('test_form',1,2,3),
'access callback' => true, //訪問權(quán)限,設(shè)為true的話任何人都能訪問
'access arguments' => '',
'type' => menu_normal_item,
);
function test_form(&$form_state,$aa = '',$bb = '',$cc = ''){//傳遞表單參數(shù)
$form['title'] = array(
'#type'=> 'textfield',
'#title' => '主題',
'#default_value' => $cc,//默認(rèn)值
'#maxlength' => 128,//長度
);
return $form;
}
這個訪問的時候form的title就是fine這個值。
希望本文所述對大家的drupal建站有所幫助。