0

我正在开发一个模块,该模块需要对同一模块定义的菜单路径进行 ajax 调用。

下面是 hook_menu 函数:

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

    function staff_filter_function(){
        drupal_json( array('status' => 0, 'data' => "staff_filter_function RESPONDING!"));
    }

和js代码:

(function($){

$(document).ready(
function(){
    $results = $.get('http://localhost/test1.localhost/?q=staff/filtering/results');

    //$results = $.get('http://localhost/test1.localhost/?q=admin/config/people');
    //$results = $.get('http://localhost/test1.localhost/admin/config/people');
});

})(jQuery);

第一行(对我定义的菜单的调用)失败并在 firebug 中返回 404 错误。

所以,我尝试了一个现有的随机菜单,即以下 2 个菜单。但是我用干净的 URL 做了一个工作,而另一个没有。具有干净 URL 的现有菜单集也失败了,但不是干净 URL 的相同菜单工作正常。

因为无论我尝试什么,我的 localhost 安装都不乐意使用干净的 URL,所以我需要一种技术来使我的模块灵活,无论站点是否使用干净的 URL(特别是如果我最终发布它)。

4

1 回答 1

0

您可以使用 Drupal 函数 URL。如果干净的 URL 打开或关闭,这将相应地调整。

例如:

<a href="<?=url('node/' . $node->nid, array('alias' => FALSE))?>">

将返回:

?q=NODE_ALIAS如果干净的 URL 关闭

或者

NODE_ALIAS如果它们被打开。

这为我省去了很多麻烦,因为我的本地主机也有类似的问题。有关 URL 函数的更多信息 - http://api.drupal.org/api/drupal/includes%21common.inc/function/url/7

于 2012-02-24T10:45:13.727 回答