入力フォームに入力補完機能を実装する
入力フォームに入力補完機能を実装する
入力フォームにgoogleの検索フォームのような入力補完機能を実装する。
サンプルページ
jQueryのAutocompleteプラグインを使用すると簡単に実装できる。(下記2つのファイル)
http://view.jquery.com/trunk/plugins/autocomplete/jquery.autocomplete.css
http://view.jquery.com/trunk/plugins/autocomplete/jquery.autocomplete.js
jQuery本体はGoogleにホスティングされているものを使用。
http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js
index.html
<!DOCTYPE html> <html lang="ja"> <head> <title>入力補完サンプル</title> <meta charset="UTF-8"> <script type="text/javascript" src= "http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <script type="text/javascript" src= "jquery.autocomplete.js"></script> <link type="text/css" href="jquery.autocomplete.css" media="all" rel="stylesheet" /> <script type="text/javascript"> $(document).ready(function(){ $('#in_text').autocomplete('suggest.php').result( function(event, item) { item[0]; } ); }); </script> </head> <body> <input type="text" size="30" name="in_text" id="in_text"/> </body> </html>
autocomplete('suggest.php')に予測変換候補のリストを出力するスクリプトを指定。
今回はphpで実装。
suggest.php
jQuery Autocompleteには予測変換候補のリストを改行区切りで渡せばよい。
suggest.phpにその機能を実装する。
予測変換候補のリスト取得元はGoogle Suggest APIを使用する。
<?php require_once("HTTP/Request.php"); $http_request = new HTTP_Request(); //パラメータにds=ytを追加するとYouTubeの予測変換候補のリストが取得できる $http_request->setURL("http://suggestqueries.google.com/complete/search?hl=ja&client=firefox&json=t&q=".$_GET["q"]); $http_request->sendRequest(); $result = mb_convert_encoding($http_request->getResponseBody(), "UTF-8", "SJIS");//結果がSJISで戻ってくる。json_decode()へはUTF-8で渡す必要があるため変換。 $result = json_decode($result); echo implode("\n", $result[1]); ?>