そのデータはXMLファイルからでなくMySQLから持ってこようと考えています。
また、MySQLとの接続はPHPでなくJSPです。
いろいろやってみたのですが、プルダウンメニューの実装が難しくて、てこずっています。
何かいい案ないですか?
AjaxTagsのAutocompleteが近いと思われます。
http://codezine.jp/a/article.aspx?aid=171
ただ自分の場合は、いまいち希望(仕様上)の動作をしなかったためJavascriptを一部修正したり、
サーバプログラム(Servlet)のソースを流用したりして、
そのまま利用することはできませんでしたが...
まあ、雛型としては十分使えました。
JSPではないですけど大変参考になる記事があります。
・http://www.atmarkit.co.jp/fwcr/rensai/ajax_php01/02.html
実装するためのソース配布サイト:http://ajax.zervaas.com.au/
デモ:http://ajax.zervaas.com.au/examples/GoogleSuggestCloneJax/ ("p"で検索してみて)
AjaxTagsのAutocompleteが近いと思われます。
http://codezine.jp/a/article.aspx?aid=171
ただ自分の場合は、いまいち希望(仕様上)の動作をしなかったためJavascriptを一部修正したり、
サーバプログラム(Servlet)のソースを流用したりして、
そのまま利用することはできませんでしたが...
まあ、雛型としては十分使えました。
このようなサイトを探してました!
AjaxTagsは知っていたのですが、英語であることもあって避けていました。
とりあえずコード書いてみます。
基本的には入力エリアの値が変更された場合に AJAX で MySQL にクエリを投げ、取得できた場合に DIV タグか何かでプルダウンメニューを作ってあげればいいと思います。
DIV タグに onclick 属性を付けて、クリックされた場合に入力エリアの値を DIV タグ内のテキストで置換させてはどうでしょう。
動作確認せず、かなり省略しますが・・
<input type="text" id="query" name="query" value="" onchange="query(this,event">
<div onclick="replace(this, event)">
function query(input, event)
{
var str =input.value;
//ここでクエリ実行
}
function show_div(array_data)
{
//array_dataに配列として候補が入ってるとして
var objdiv = document.getElementById("list");
var str = '';
for(i=0; i < array_data.length; i++)
{
str += '
}
objdiv.innerHTML = str;
objdiv.style.display = 'block';
}
function replace(divtag, event)
{
var str = divtag.innerHTML;
var objform = document.getElementById("query");
objform.value = str;
}
</div>長いコードを書いてくれて本当にうれしいのですが、2番目の回答で解決しましたので申し訳ございません。
divタグにJavaScriptのコードを生成してonclickとかが動作するのか疑問に思います
このようなサイトを探してました!
AjaxTagsは知っていたのですが、英語であることもあって避けていました。
とりあえずコード書いてみます。