3

私は AJAX をよく理解しており、通常は問題なく使用できますが、Joomla には比較的慣れておらず、最近コンポーネントの構築などを始めたばかりです。

「デフォルト」ビューを使用するコンポーネント (ディレクトリという名前) を作成しました。ここには、AJAX 呼び出しである次のコードがあります。

<script type="text/javascript">                         
var url = "index.php?option=com_directory&view=directory&task=clubFilter&format=raw";
jQuery(document).ready(function() {
    jQuery('#city').change(function() {         

        jQuery.ajax({
            url: url,
            type: "POST",
            data: jQuery("#city").serialize(),
            dataType: 'json',
            success: function(data) {
                alert('data');
            }
        });
    });
});

そして、「views/directory/views.html」ファイル内に、現在ダイが含まれている次の関数を作成したので、いつ動作するかを確認できます。

public function clubFilter() {
        die(print_r('here_i_am'));
    }

次のコードを実行すると、Firebugs コンソール内で次のエラーが発生します。

'Error: 500 View not found [name, type, prefix]: directory, raw, directoryView'

AJAX url var が正しくないためだと思いますが、ここから他のソースまでさまざまなソリューションを試してみましたが、AJAX 機能を動作させることができません。私のURLは間違っていますか?どうもありがとう

4

2 に答える 2

5

通常、コントローラー上のタスクに対して ajax 呼び出しを行います。

コンポーネントへのajax呼び出しを使用する拡張機能の1つで使用しているURL形式は次のとおりです。

index.php?format=raw&option=<component_name_goes_here>&task=<task_goes_here>

次に、コンポーネントのデフォルト コントローラーに、タスクと同じ名前の関数を配置します。

function getSomeData()
{
   echo(json_encode($data));//I normally return json
}

お役に立てれば。

于 2012-10-30T16:13:59.823 に答える
3

このURLを試してください。それはあなたを助けるかもしれません。

var url = "index.php?option=com_directory&view=directory&task=clubFilter&tmpl=component";

format=rawと置換する&tmpl=component

それ以外の場合は、以下の形式も試すことができます。

jQuery.post('index.php',{
                        'option':'component_name',
                        'controller':'controller_name',
                        'task':'task_name',
                        'format':'raw',                   
                        'data': jQuery("#city").serialize(),
                        'dataType': 'json',
                },function(result){                     
                      //edit the result here

                    return;
       }); 

これに関して何か問題がある場合は、遠慮なくお尋ねください。

于 2012-10-30T16:24:57.197 に答える