php - Joomla AJAX 调用丢失 Joomla 数据库类

标签 php ajax database joomla

我目前正在构建一些功能到 Joomla 构建中,而结果是在选择框更改时从数据库返回的。 我遇到的问题是,当我进行 Ajax 调用时,我得到一个 Class JFactory not found' 错误,我认为这是因为未考虑运行 php 代码的文件在调用 AJAX 时在 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,所以如果您还没有这样做,我建议您尝试一下。

关于php - Joomla AJAX 调用丢失 Joomla 数据库类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13137682/

相关文章:

php - MySQL 和 PHP 优化搜索

php - 使用 php 循环获取 MSSQL 表的每个列名

php - Foreach 键不递增

ajax - 可以在 AJAX 请求中发送 header 吗?

php - 如果条件错误,ajax 响应中的错误

c# - 实体应该映射到它自己的数据库表吗?

php - jQuery ajax 完成并发布 php 文件?

javascript - AJAX - 发送 html 片段可以吗?

mongodb - 有没有多核利用NoSQL的系统?

database - 在(postgresql)数据库中存储 EUI-64 地址的数据类型