[英]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.