2

現在、いくつかの機能をJoomlaビルドに組み込んでいますが、結果は選択ボックスの変更時にデータベースから返されます。私が抱えている問題は、Ajax呼び出しが行われClass JFactoryたときにphpコードが実行されているファイルがJoomlaフレームワーク内にあるとは見なされないため、見つからないというエラーが表示されることAJAXです。私はこれを自分で解決しようとしましたが、問題が発生しています。どこが間違っているのか、誰かが私を正しい方向に向けることができますか?

呼び出し( Ajaxindex.php 内):

<script type="text/javascript">
    var url = "<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/directory_code.php";
    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');
            }
        });
    });
});
</script>

関数 (directory_code.php というファイル内):

if(isset($_POST)) {
    if(isset($_POST['city'])) {
        $city = $_POST['city'];
        $suburbs = populateSuburbs($city);
    }
}   

function populateSuburbs($city) {               
    $db = JFactory::getDBO();
    $query = "SELECT DISTINCT suburb FROM vyj20_contact_details";
    $db->setQuery($query);
    $results = $db->loadObjectList();
    foreach($results as $key => $result) {
        $data['suburb'][] = array(
            $key => $result->suburb
        );
    }
}

どうもありがとう

4

1 に答える 1

0

コードdefined( '_JEXEC' ) or die( 'Restricted access' );は通常 ajax を制限します

関数を使用する必要がありますdefine('_JEXEC', 1);

defineではなくを使用する必要があることに注意してdefinedください。まだこれを行っていない場合は、試してみることをお勧めします。

于 2012-10-30T11:34:40.800 に答える