これが基本的すぎる場合は本当に申し訳ありませんが、これを行う方法が本当にわかりません。
私はこの jquery Autocomplete プラグインを使用しています: http://devthought.com/wp-content/projects/jquery/textboxlist/Demo/
編集:これは、オートコンプリートに使用するjqueryコードです:
$(function() {
var t = new $.TextboxList('#form_topick_tags', {unique: true, plugins: {autocomplete: {
minLength: 2,
queryRemote: true,
remote: {url: 'autocomplete2.php'}
}}});
プラグインはオートコンプリートに PHP を使用します。これは例です。次の出力が返されます: "id, text, null (html I don't need), some html"
$response = array();
$names = array('Abraham Lincoln', 'Adolf Hitler', 'Agent Smith', 'Agnus', 'Etc');
// make sure they're sorted alphabetically, for binary search tests
sort($names);
$search = isset($_REQUEST['search']) ? $_REQUEST['search'] : '';
foreach ($names as $i => $name)
{
if (!preg_match("/^$search/i", $name)) continue;
$filename = str_replace(' ', '', strtolower($name));
$response[] = array($i, $name, null, '<img src="images/'. $filename . (file_exists('images/' . $filename . '.jpg') ? '.jpg' : '.png') .'" /> ' . $name);
}
header('Content-type: application/json');
echo json_encode($response);
この結果を処理するには、同様の PHP が必要です: http://www.freebase.com/private/suggest?prefix=beatles&type_strict=any&category=object&all_types=false&start=0&limit=10&callback=
... $search 値を「打ち負かす」ことで、次の出力が得られます。
guid,"name",null,"name<span>n:type name</span>"
したがって、最初の結果は次のようになります。
0,"The Beatles",null,"The Beatles<span>Band</span>"
もちろん、その PHP から freebase.com にクエリを実行する必要があります。つまり:
+---------------+ +-----------+ +------------+
| | | | | |
| TextboxList +-------->| PHP +------->| Freebase |
| | | | | |
+---------------+ +-----------+ +------+-----+
|
JSON JSON |
TextboxList <--------+ freebase <----------+
これは可能ですか?ありがとう!