我目前正在将一些功能构建到Joomla构建中,而结果是在选择框更改时从数据库返回的。我遇到的问题是,当我Ajax
拨打电话时,我得到一个Class JFactory
未找到的错误,我认为这是因为在拨打电话时,运行 php 代码的文件不被认为在 Joomla 框架内AJAX
?我试图自己解决这个问题,但遇到了麻烦。谁能指出我错在哪里的正确方向?
调用(在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
);
}
}
非常感谢