0

我正在使用 hook_menu 来设置我通过 JQUERY 从 AJAX 应用程序调用的链接。我的钩子实现如下:

function staff_filter_menu(){
$items = array();
$items['staff/filtering/results/%'] = array(
    'page callback' => 'staff_filter_function',
    'page arguments' => array(3),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
    'delivery callback' => 'staff_filter_deliver',
);
return $items;

}

此链接是我的 ajax 应用程序的联系点,它是一个简单的文本字段,用户可以在其中输入一些输入。*staff_filter_function* 搜索数据库并返回一些匹配的数据。Ajax代码如下:

$.ajax({
url: Drupal.settings.CALL_BACK + '/' + $(this).val(),
success: function($data){
       .... more stuff done here
    }
});

这一切都很好,但只有一个小细节。 我想允许显示所有结果的快捷方式。此快捷方式只是键入一个空格。但是,因为 hook_menu 期望在 url 末尾有一个参数,所以每当我输入空格时,我的 ajax 请求都会失败。当我输入真实内容时,它可以完美运行。

这只是为了完整性,拥有功能很好......如果有人可以分享一些想法,我会非常感激。

4

1 回答 1

1

也许您不需要在 URL 的末尾添加参数。只需将您的代码更改为以下内容:

function staff_filter_menu(){
$items = array();
$items['staff/filtering/results'] = array(
    'page callback' => 'staff_filter_function',
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
    'delivery callback' => 'staff_filter_deliver',
);
return $items;

并对您的页面回调函数进行轻微更改

function staff_filter_function($my_arg = "")
{
// your code goes here
}

您可以将 $my_arg 视为您的页面参数。

希望它有效,穆罕默德

于 2012-03-11T08:24:57.973 回答