繁体   English   中英

Joomla AJAX调用丢失了Joomla数据库类

[英]Joomla AJAX call losing Joomla database class

我目前正在将一些功能构建到Joomla构建中,而结果是在选择框更改时从数据库返回的。 我遇到的问题是,当我进行Ajax调用时,我得到一个找不到Class JFactory的错误,我认为这是因为进行AJAX调用时,运行php代码的文件不被视为在Joomla框架内? 我曾尝试自己解决此问题,但遇到了麻烦。 谁能指出我在哪里做错了正确的方向?

Ajax调用(在index.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
        );
    }
}

非常感谢

代码defined( '_JEXEC' ) or die( 'Restricted access' ); 通常限制ajax

函数,因此您将需要使用define('_JEXEC', 1);

请注意,您需要使用define ,而不是defined ,因此,如果您还没有这样做,我建议你试试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM