将Joomla 3.7.5版与Wright模板一起使用。
我在左侧边栏中有一个模块,它有2个预先输入字段从本地数据库获取数据。使用include_once通过sourcerer插件引用php代码。
在模块中使用时,预先输入不起作用。但是 - 如果我在文章中使用完全相同的代码,则typeahead可以正常工作。
文章和模块的加载/行为有何不同?如果有人能解释这种行为,我将不胜感激。
代码的相关部分如下。
PHP - 第一行代码是:
JHtml::_('script', './templates/js_wright/wright/js/jquery.js');
JHtml::_('script', './styling/bootstrap3-typeahead.min.js');
$document->addStyleSheet("./media/jui/css/bootstrap.css",'text/css',"screen");
HTML - 格式为:
<div class="input-prepend span8"><span class="add-on" ><i class="icon-map-marker" ></i></span><input autocomplete="off" style="border-color:#F7980F;" class="typeahead" id="inputIcon" type="text" name="collectionpoint" /></div>
Javascript:
$('input.typeahead').typeahead({
source: function (query, process) {
return $.get('./towns.php', { query: query }, function (data) {
console.log(data);
data = $.parseJSON(data);
return process(data);
});
}
});
和towns.php:
$sql = "SELECT Town FROM lkp_towns
WHERE Town LIKE '%".$_GET['query']."%'
LIMIT 5";
$result = $mysqli->query($sql);
$json = [];
while($row = $result->fetch_assoc()){
$json[] = $row['Town'];
}
echo json_encode($json);
答案 0 :(得分:0)
完成了工作。
Joomla没有将模块视为单独的页面,而是作为主页面的嵌套div。
将以下行移至模板显示的主要文章页面解决了问题,因为在加载任何其他内容之前需要引用.js:
从模块中删除了它并将其包含在文章中:
WebView