Joomla 1.5 の Bootstrap v2.3.1 typeahead に問題があります - 入力タグ内で data-source='["..."]' メソッドを使用する場合にのみ正常に動作しますが、リモートの php 生成された mysql を受け入れませんjson エンコードされたクエリ。
チュートリアルからコピーした私のコードは次のとおりです。
<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>
json でエンコードされた配列を出力する簡略化された source.php を次に示します。
//joomla required stuff
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$db = &JFactory::getDBO();
$array = array();
$array[] = "item1";
$array[] = "item2";
$array[] = "item3";
//this is just for testing
echo json_encode($array);
ボタンクリック後に単純なjQuery ajaxロードを使用して出力をテストし、配列を出力しましたが、typeaheadで動作させることはできません。また、次のように配列を指定しても、typeaheadは機能しません。
var colors = ["red", "blue", "green", "yellow", "brown", "black"];
$('#search').typeahead({source: colors});
どんな助けでも大歓迎です-それがJoomlaの問題なのか、私のコードなのか、それとも何か他のものなのかわかりません。