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 で 1 つを機能させ、もう 1 つを非クリーンな URL で機能させました。クリーンな URL を持つ既存のメニュー セットも失敗しましたが、クリーンな URL ではない同じメニューは正常に機能しました。

私のローカルホストのインストールは、何を試してもクリーンな 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 に答える