2014-03-29 35 views
1

我在具有塊I有一個搜索按鈕,當該按鈕我通過這個URL(www.jksb.com/saleorderlist?field_month=4)到drupal的菜單點擊。在菜單的頁面參數中,我需要提供參數(field_month)。我的頁面參數是這樣的:'page argument'=> array(1),但它不適用於我。我需要有人幫助我解決這個問題。頁論點的Drupal

回答

0

你是通過你的論點查詢字符串,但如果你使用「頁面參數」 =>陣列(1)」,這意味着你想要的路徑的第二段/組件爲您的回調的第一個參數傳遞功能。 (你仍然可以在你的回調中獲取參數,但是在這種情況下你必須使用「$ _GET」變量)。

例如:

$items['my-module/%/edit'] = array(
    'page callback' => 'mymodule_abc_edit', 
    'page arguments' => array(1), 
); 

在此, 「%」 是在位置 「1」 通配符( 「我的模塊」 是在0位置和 「編輯」,在位置2)。這是將在回調函數的第一個參數(「mymodule_abc_edit」)

傳遞你的情況,你的路徑「hook_menu」看起來應該如下值:

'saleorderlist/%' 

然後如果你打電話路徑 「saleorderlist/4」, 「4」 會回調函數的第一個參數傳遞:

功能my_callback($ field_month){ 回聲$ field_month; //將回聲 「4」 }

有關hook_menu這裏更多的信息(對於您目前的問題「通配符在路徑」一節):https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_menu/7

+0

謝謝您的回答,但我想爲u在上面說的。但是當'saleorderlist?field_month = 0'被調用時,我在我的saleorderlist頁面中收到了「page not found」消息。 – SAWAUNG

+0

是的,這是因爲你必須註冊另一個項目的路徑「saleorderlist」(這是不同的路徑「saleorderlist /%」 – progzy

1

這是我解決了這個問題。

saleordermonthly.module

功能sale_order_monthly_menu(){
$項=陣列();

$items["saleOrderMonthlyList"] = array(
'title' => 'Sale Order Monthly Report', 
'description'=>'Sale Order Monthly', 
'page callback' => 'sale_order_monthly_loadAllrecord', 
//'page arguments' => array($para), 
'access arguments' => array('access saleOrderMonthlyList'), 
'type' => MENU_NORMAL_ITEM, 
'file' => 'sale_order_monthly.admin.inc', 
'access callback' => TRUE 
); 

return $ items; }

saleordermonthly.inc

enter code here 
<?php 
function sale_order_monthly_loadAllrecord() 
{ 
$para=''; 
$query = drupal_get_query_parameters(); 
if(count($query) > 0){ 
    $para= $query['field_month']; 
}; 

} ?>

+0

謝謝你的drupal_get_query_parameters()!我尋找的方式太長了! –