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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Ajax

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

Q&A

0回答

674閲覧

ajaxを利用して、非同期で検索をしているのですが、表示されません。

avicii

総合スコア49

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Ajax

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

0グッド

0クリップ

投稿2020/08/19 09:00

編集2020/09/03 03:42

私は、現在ajaxを利用して、非同期で検索ができるようにしたいと考えています。しかし、送信ボタンを押しても、検索ができていない状態になっています(エラーは発生していません)。もしわかる方がいらしたら、どうぞ教えて頂きたいです。どうぞよろしくお願い致します。

イメージ説明

参考にしたページ
https://qiita.com/__tambo__/items/409ccf256e84017ea307

controller

1def index 2 @meals = Event.where("event_name LIKE(?)", "%#{params[:keyword]}%") 3end

view

1<input id="meal_form" style="display: inline-block; position: absolute; width: 20px; height: 20px; left: 30px; width: 160px; border: unset;"> 2<input id="submit_form" type="submit" style="display: inline-block; position: absolute; width: 20px; height: 20px; left: 0;"> 3<ul class="meal_list"> 4</ul> 5

views/events/index.json.builder

json

1json.array! @meals do |meal| 2 # meal.nameがjsonデータのnameに代入されます 3 # json.〇〇の〇〇がデータから値を取り出す時に使う変数名となります 4 json.name meal.name 5end

search_result.js

javascript

1$(function(){ 2 $("#submit_button").click(function(){ //送信ボタンを押すとイベントが発火します 3 var input = $("#meal_form").val(); // フォームの値を'input'という名前の変数に代入します 4 $.ajax({ 5 type:'GET', // リクエストのタイプはGETです 6 url: '/events', // URLは/mealsを指定します。つまりmeals#indexのアクションをリクエストします 7 data: {keyword: input}, // コントローラへフォームの値を送信します 8 dataType: 'json' // データの型はjsonで指定します 9 }) 10 .done(function(data){ 11 // 通信に成功した場合の処理です 12 $('.meal_list').empty(); //前回の検索結果が残っている場合はそれを消します 13 data.forEach(function(meal){ 14 $('.meal_list').append(`<li>${meal.event_name} </li>`); 15 //データは配列形式でかえってくるので、forEachで繰り返し処理をします 16 //ここではデータの単数の変数名をmealと置いていますが、何でも構いません。 17 //ただし、値を取り出す場合は"ここで定義した変数名"."json.jbuilderで定義した〇〇(この例ではname)"で取得します。 18 }) 19 }) 20 .fail(function(){ 21 // 通信に失敗した場合の処理です 22 alert('検索に失敗しました') // alertで検索失敗の旨を表示します 23 }) 24 }) 25})

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問