Jquery joomla中的引导typeahead不接受源数组
我对Joomla 1.5中的Bootstrap v2.3.1 typeahead有一个问题-只有在输入标记中使用data source='[“…]”方法时,它才能正常工作,但不会接受远程php生成的json编码的mysql查询 以下是我从教程中复制的代码:Jquery joomla中的引导typeahead不接受源数组,jquery,joomla1.5,bootstrap-typeahead,Jquery,Joomla1.5,Bootstrap Typeahead,我对Joomla 1.5中的Bootstrap v2.3.1 typeahead有一个问题-只有在输入标记中使用data source='[“…]”方法时,它才能正常工作,但不会接受远程php生成的json编码的mysql查询 以下是我从教程中复制的代码: <input type="text" id="search" data-provide="typeahead"/> <script> $(function(){ $("#appendedInputBut
<input type="text" id="search" data-provide="typeahead"/>
<script>
$(function(){
$("#appendedInputButton").typeahead({
source: function(query, process) {
$.ajax({
url: 'http://www.mydomain.com/source.php',
type: 'POST',
data: {q: query},
dataType: 'JSON',
async: true,
success: function(data) {
process(data);
}
})
}
})
})
</script>
我在点击按钮后使用一个简单的jQuery ajax加载测试了输出,它打印出了数组,但我无法让它与typeahead一起工作。此外,如果我像这样提供数组,typeahead甚至不起作用:
var colors = ["red", "blue", "green", "yellow", "brown", "black"];
$('#search').typeahead({source: colors});
非常感谢您的帮助-我不知道这是Joomla问题、我的代码还是其他问题。对于任何考虑到这一点的人来说,我无法在我的Joomla 1.5站点中使用引导typeahead,而是使用了typeahead.js,它运行良好>可能有点晚了,但是: 实际上,它工作得很好(Joomla!3.9.4,Bootstrap 3),您必须实例化Joomla
JResponseJson
类才能获得json编码的数据
因此,不是这个echo json_encode($array)代码>,您应该这样写:
$data = new JResponseJson($array);
echo $data;
代码是
正在工作的hellowold组件是:您确定它应该是一个POST
请求吗?另外,您是否将内容类型设置为application/json
,以便浏览器(和jQuery)能够正确猜测数据的类型?我认为,我将问题缩小到多个jQuery/mootools加载。似乎无法解决这个问题,因为joomla需要这些库才能工作,甚至没有任何冲突方法可以解决这个问题。我似乎无法让任何jquery ajax查询正常工作,我仍然在摆弄…:/我不熟悉Joomla或Mootools,但我发现,这可能会帮助你。如果确实尝试返回JSON数据,则必须在将任何输出发送到客户端之前,将返回的内容类型头设置为application/JSON
。
$data = new JResponseJson($array);
echo $data;