2010-05-22 76 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