2010-05-22 82 views
1

我使用hook_menu來註冊新的url,以便訪問這個url會返回一些數據到ajax函數。正如標題所示,這個網址沒有註冊。我如何知道這一點?我試着在地址欄中輸入,但是,drupal只返回主模板,而不是我創建的測試字符串。如果我故意寫錯了語法,我肯定我的模塊正在爲php問題工作。而且,是的,每當我進行更改時,我都會清除緩存。下面的代碼 -爲什麼url沒有註冊?(Drupal 6.x)

function test_menu() { 
$my_form['test'] = array(
    'title' => 'Test address', 
    'page callback' => 'test', 
    'access arguments' => array('access content'), 
    'type' => MENU_CALLBACK, 
); 

return $my_form; 

}

功能測試(){$ 一個= 「測試」;

return $a;  

}

回答

1

Drupal是返回變量,但你的代碼沒有曝光。看看吧,下面一行添加到test()功能return前行:

drupal_set_message('Variable $a: ' . $a); 

這將顯示在頁面的內容區域中的文本和變量值,讓你知道,Drupal是註冊路徑(和正在運行test()功能,並且可以使用其變量):

Variable $a: testing 

$a如果是一個數組,這將不顯示它的值,但是隻有變量(「陣列」)的類型。要查看此數組的元素:

$a = array ('testing', 'element2', 'item3'); 

使用PHP print_r()功能打印數組元素的縮進列表。括在HTML pre標籤具有了很好的壓痕線:

drupal_set_message('<pre>Array $a: ' . print_r($a). '</pre>'); 

這將輸出數組中的格式爲:

Array 
(
    [0] => testing 
    [1] => element2 
    [2] => item3 
) 
+0

我以爲只是回來,我想使用的值,會做訣竅。否則Drupal會起作用。謝謝一堆。 – Andrew 2010-05-22 12:07:47

+0

沒問題。 test_menu()函數返回一個變量,但這沒關係,因爲構建菜單和路徑的函數返回一個變量。但是,當test()函數運行時(當有人進入該路徑時),Drupal正在組裝頁面並正在尋找要返回的HTML。 – flamingLogos 2010-05-22 15:11:06