gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:21 25 4
gpt4 key购买 nike

我目前正在构建一些功能到 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com