1

1 つの jquery プラグインを使用する joomla でモジュールを作成しようとしています。モジュール内の要素をクリックしながら ajax 操作を行う必要があります。現在、phpファイルへのパス全体を指定しています。しかし、私はそれが間違った方法であることを知っています。

jquery プラグインのコードはこのようなものです (jquery プラグイン ファイルでパスが指定されている 2 行目に注意してください)。

       $.get(
            "/subdirectory/MyBlog/modules/mod_calendar/getCalendar.php", {
                month: $("#selectedMonth").val(),
                year: $("#selectedYear").val(),
                flag: '-1'
            }, function(data){
                $("#monthlyCalendar").html(data);
                $("#monthlyCalendar").show();
            }
        ); 

jquery プラグイン ファイルでパスを指定する正しい方法は何ですか。また、jquery プラグイン ファイルをモジュール内のどこに配置するかを知る必要があります。

4

3 に答える 3

1

下記のブログに答えがありました。

http://blog.subooa.com/development/joomla-coding/ajax-in-joomla-with-jquery/

于 2010-07-01T04:28:25.660 に答える
0

私が見つけた最善の方法は、JURI::root メソッドを使用して、後で使用できる JavaScript 変数を作成することです。PHP コードでは、次のようにします。

?>

<script type="text/javascript">
        var joomlaRoot = '<?php echo JURI::root(); ?>';
</script>

<?php

その後、AJAX 呼び出しを行うときにその変数を使用できます。

jquery プラグイン ファイルをモジュール内のどこに配置するかについては、モジュールのディレクトリの下の好きな場所に配置してから、JURI::root を再度使用してパスを作成し、JDocument::addScript メソッドを呼び出します。

ちなみに、MooTools の使用を検討することもできます。Joomlaにバンドルされています!すでに。AJAX 呼び出しを行う機能があります。また、それを使用することで、jQuery の競合が発生する可能性を回避できます。

于 2010-06-19T18:21:30.963 に答える
0

最後に、Joomla で Jquery を使用して Ajax を使用するための適切なソリューションを見つけることができました。

このためには、最初にビューとモデルを作成して、AJAX 呼び出しを介して必要な html を取得する必要があります。

次に、次のような jQuery コードを使用して、必要なビューの出力のみを取得します。

//Code to get the base URL of joomla installation
szURL = document.URL;
componentList = szURL.split('/');
szDocument = componentList[componentList.length-1];
szURL = szURL.replace(szDocument, "");

//URL to the required component
url = szURL + "?option=COMPONENT_NAME&view=VIEW_NAME&tmpl=component&uid=" + getRandomValue();
jQuery.get(url, function(data) {
    jQuery("#mydiv").html(data);
});


//Function to get a random number
//It is used for Ajax calls from IE; Else IE will use the cache values
function getRandomValue(){
    return Math.floor(1000000 * (Math.random() % 1))
}

ajax 呼び出しに使用される URL に注意してください。" " を使用tmpl=componentして、選択したコンポーネントの html のみを joomla HTML なしで取得します。

于 2010-12-22T06:05:30.300 に答える