質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

2回答

7512閲覧

AJAX 方式によるオートコンプリートデータの取得(jQuery)

takato

総合スコア148

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2015/10/26 10:38

失礼します。

http://jquery.keicode.com/ui/autocomplete.php
上記のページ参考にサジェスト機能を実装を試してみたのですが、うまくいきません。

「AJAX 方式によるオートコンプリートデータの取得 (ファンクションオブジェクト)」にあるオープンソースを真似てみてソースの中にあるURLを作成した自分が作成したWEBアプリURL、「type」をPOSTからGETに変更(POSTのままだとPOSTメソッドが見つかりませんとEcripseで表示される)して一応つながるようにはなったのですがサジェスト候補が表示されません。
オープンソースのようにPHPでなくEcripseで作成した場合他に手を加える点などあるのでしょうか?

補足として検索機能は完成しています。http:xxxseach=*の*のところを呼びたい単語を入力するとサジェスト候補が返ってくるのです。これをテキストボックスで入力してサジェストしたいです

どなたかお力添えください。誰もわからなく困っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eripong

2015/10/27 02:30

EcripseというのはEclipseのことですよね。Eclipseで作成したとはどういうことですか?JavaのServletを書いたと言うことですか?サーバサイドのソースも載せていただけませんか?
takato

2015/10/27 02:42

そうです。すいません。。。 ソースを載せるというより検索することはもうできているんです。 たとえばURL上でhttps:xxxxseach=さ とうつとJSON形式で"さとう""さいとう""ささき"とかえってくるのです。参考サイトの下のほうにある「応答が次のように返されて・・・」のように なのでサーバサイドのソースというよりjsファイルさえできれば完成すると思います。
guest

回答2

0

ベストアンサー

サーバからの応答が、期待したものでない可能性があるので、
サーバのソースを載せて頂きたかったのです。

lang

1 success: function(o){ 2 resp(o); 3 }, 4 error: function(xhr, ts, err){ 5 resp(['']); 6 }

の部分のsuccess、errorにブレークポイントを設定するか、console.logするなどして、
どちらが呼ばれたか、引数に何が返ってきたか確認できますか?

投稿2015/10/27 03:00

eripong

総合スコア1546

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takato

2015/10/27 03:25

ご親切にありがとうございます。 logファイルの使い方がまだ慣れていないのでgoogle chromeのほうで調べてからまた返信させていただきます。
takato

2015/10/27 03:51

lang javascript $(document).ready( function() { $("#ac2").autocomplete({ source: function(req, resp){ req = Object {term: "t"}, resp = ()//【t】入力した場合 $.ajax({ url: "http://127.0.0.1:8180/api/stockcars/keyword?kome_name=", type: "GET", cache: false, dataType: "json", data: { param1: req.term }, success: function(o){ resp(o); }, error: function(xhr, ts, err){ resp(['']); } }); } }); }); テキストボックスにtを入力した場合です。 何も引数としてとれてないですかね? 補足ですがurlにkome_name=s と入力するとテキストボックスに"さとう""さいとう""ささき"とテキストボックスにサジェスト候補としてでるのですが、他の「あ」「た」と入力しても"さとう""さいとう""ささき"が候補として出てしまいます。。。
eripong

2015/10/27 04:00

resp(o);の行とresp(['']);の行で確認して頂きたかったのです。 分かりにくくすみません。 いただいたソースからすると、urlから?kome_name=を消し、 param1: req.termの所はkome_name: req.termにするべきと思います。
takato

2015/10/27 05:57

出来ました...信じられません。2週間ほど某サイトの知恵袋や本屋をかけずり回ってもわからなかったのに.... 親身になっていただいてありがとうございました。 ベストアンサーしか評価できないのが残念です。 本当にありがとうございました!
eripong

2015/10/27 05:59

いえ、うまくいって良かったです。 そんなに喜んで頂くとこちらも嬉しいです。
takato

2015/10/27 07:44

こんな簡単にできてびっくりしました! タイトルとずれてしまいますが、これに送信フォームを付け足す場合何か特殊な処理など必要でしょうか?
eripong

2015/10/27 07:47

多分、特殊な処理はいらないと思います。
takato

2015/10/27 08:02

送信先のURLを設定しても設定してもURL通りのページに飛ばなかったので・・・ 少し編集してみて送信できるようにしてみます!ありがとうございます!
eripong

2015/10/27 08:04

おっと、そうですか。 がんばってください。
takato

2015/10/27 09:54

さっそくのご返答ありがとうございます。 原因が文字コードの変換とわかりましたががうまくいかずにネットで調べ編集してみたのですが、適用されないです。。 <form method="GET"action="http://127.0.0.1:8180/api/stockcars/keyword?kome_name=" name="kome_name" accept-charset="EUC-JP"> <input id="ac2" type="search" name="kome_name" > <input type="submit" value="検索"></form> </body> サジェストした項目をEUC-JPで飛ばしたいです・・・厚かましいですがなにが原因でしょうか? <head>タグ内はいじってません。
takato

2015/10/27 11:33

eripong様 自己解決しました。 大変お世話になりました!
eripong

2015/10/27 11:43

ちょっと見てませんでしたが、 解決して良かったです。
guest

0

参考サイトひどいな

Ajax?はデフォルトでは非同期通信。
関数実行しただけじゃ結果は返ってこない。
かくなら

Javascript

1(function( doc ){ 2 jQuery( doc ).ready( 3 jQuery.ajax( { 4 url : 'autocomplete-datasource.php' // json を返すこと前提 5 ,type : 'POST' 6 ,cache : false 7 ,dataType : 'json' 8 ,data : { param1 : xxxx } 9 ,success : function ( data ) { 10 jQuery( '#ac2' ).autocomplete( sorce : jQuery.parseJSON( data ) ); 11 } 12 } ); 13 ); 14})( document );

投稿2015/10/26 16:23

miya

総合スコア81

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takato

2015/10/27 02:02

早速のお応えありがとうございます。参考サイトが参考にならないとは・・・ 早速URLを変更して試させていただきましたが「after argument list」とエラーがでました。 エラーの原因が文字列が正しく囲まれていないとでたのですがソースを見直してもエラー箇所がわかりません jQuery( '#ac2' ).autocomplete( sorce : jQuery.parseJSON( data ) ); この行からエラーが出ています。何故でしょうか? またxxxxは何か変数に変える必要はあるのでしょうか。 お手数ですがご返答お待ちしております。
takato

2015/10/27 06:01

miya様 問題解決できました。 深夜遅くに質問に答えていただいて大変嬉しかったです。
tozjp

2015/10/28 09:39

miya さん 参考サイトは別に悪く無いと思いますよ。 同期通信を期待したコーディングにはなっていません。 決して綺麗とはいえずこれがいわゆるコールバック地獄か…という印象ですが、それはライブラリの作りの問題でサイトのせいではありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問