jQuery UIのAutocompleteを使ってみる
ネットで調べると色んなやり方が出てきて、どれを参考にしたらええねん!と手当たり次第試してみました。
いろいろ試してみて自分の中で一番しっくり来たやり方をブログしまっす。
Jquery UI 公式 ←jQuery UIのダウンロードはコチラから!
「class名="test"の入力フォームに対して、データベースから候補を引っ張ってきて表示」をやってみます。
候補リストの内容は「auto_complete」テーブルのkeywordカラムに準備しておきます。
まずはscript側から。
ajaxでphp側に入力情報を飛ばします。
$('.test').autocomplete({ source: function(req, resp){ $.ajax({ url:'auto_complete', type:'POST', cache:false, dataType:'json', data:{ str:req.term }, success:function(o){ resp(o.data); }, error:function(xhr, ts, err){ resp(['']); } }); }, //ここにAutocompleteのオプションを設定 });
次にphp側の処理。
入力キーワードに対してLIKE検索で引っ掛けます。
$post = Input::only('str'); //コールバックで返す用の変数(配列) $d_arr = array(); $data = DB::table('auto_complete') ->where('keyword', 'LIKE', '%'.$post['str'].'%') ->get(); if($data){ foreach($data as $d){ array_push($d_arr, $d->keyword); } } return Response::json(array('data'=>$d_arr));
こんな感じ。
コールバックに中身がある場合、入力フォーム部分に候補リストが表示されます。
ではまた~(;´∀`)ノ
関連記事はこちら
-
Ajax LaravelやPHPでファイル保存する時Base64とかでよく忘れちゃうこと
-
CentOS Stream9 LAMP構築から色々含めて
-
Dockerを使って、とりあえずLaravel~MySQLまで使えるようにしよう(構築 前編)
-
LaravelでNamespace declaration statement has to be
- 2021-07-05
- #Laravel
- #エラー
- #Namespace
- #凡ミス
-
Laravelでルートは合ってるのに、Not Foundが出る解決方法
-
Laravelで簡単にバックアップしてCronで別サーバーへFTP転送までを自動化してみた
-
jQueryで要素を追加した時の挙動と反応と対処
-
Laravel クエリビルダ インクリメント処理