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

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

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

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

jQuery

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

非同期処理

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

Ajax

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

1回答

1425閲覧

ajaxを使って非同期通信でデータを取得したいがリロードされる

moru

総合スコア5

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

jQuery

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

非同期処理

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

Ajax

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2021/04/05 11:31

前提・実現したいこと

laravelでjqueryのajaxを使って検索機能を実装しようとしています。
サーバーにあがったhtmlを差し替える形で、検索結果を表示したいのですが、
リロードされてしまいます。

コードの記述をいろいろ変えたのですが、解決方法・原因が分からないため質問させていただきます。

発生している問題・エラーメッセージ

コンソールで確認すると、「[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.」
というエラーが出ます。

該当のソースコード

<list.blade.php> <div id="table"> @extends('layout') @section('title','ブログ一覧') @section('content') <div class="row"> <script src="{{ asset('/js/delete.js') }}"></script> <script> $(function(){ $('#button').on('click', function(){ var val = $('#keyword').val(); $.ajax({ type:'GET', url:'/search', datatype:'html', async:true, data: {keyword: val } }) .done(function (response) { $('#table').html(response); }).fail(function (err) { // 通信失敗時の処理 alert('ファイルの取得に失敗しました。'); }); } ); }); </script> <div class="col-md-8 col-md-offset-2"> <h2>ブログ記事一覧</h2> <div class="form-group"> <form id="search" class="form-inline" action="{{url('/search')}}">  <input type="text" name="keyword" value="@if (isset( $keyword )) @endif" id="keyword" placeholder="キーワード入力" >  <button id="button">検索</button> </form> </div> @if (session('err_msg')) <p class="text-danger">{{ session('err_msg') }} </p> @endif <table class="table table-striped"> <tr>   <th>記事番号</th>   <th>タイトル</th>   <th>日付</th>   @auth<th></th>@endauth </tr> <tr> @foreach($blogs as $blog) <td>{{ $blog->id }}</td> <td><a href="/blog/{{ $blog->id }}">{{ $blog->title }}</a></td> <td>{{ $blog->updated_at }}</td> @auth <form method="POST" action="{{ route('delete',$blog->id) }}" onSubmit="return checkDelete()"> @csrf <td><button type="submit" class='btn btn-primary' onclick=>削除</button></td> @endauth </tr> @endforeach </table> {{ $blogs->links() }} <br>  </div>  </div> </div> @endsection
<web.php> //検索機能 Route::get('/search', [BlogController::class, 'getSearch'])->name ('search');
<BlogController.php> //検索機能 public function getSearch(Request $request) { // キーワードを取得 $keyword = $request->input('keyword'); //クエリ作成 $query = Blog::query(); //キーワードが入力されている場合 if(!empty($keyword)){ $query->where('title', 'like', '%'.$keyword.'%') ->orWhere('body','like','%'.$keyword.'%'); } // 検索結果を5件ごとに表示 $blogs = $query->paginate(5); // 検索結果をブログ一覧に表示 return view('blog.list')->with(compact("blogs","keyword")); } }

補足情報(FW/ツールのバージョンなど)

MAMPのバージョンは6.0.1(986)
VScodeバージョン: 1.55.0
jquery2.2.4
laravelのバージョンは8です。

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

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

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

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

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

Lulucom

2021/04/05 12:11

検索ボタンのtype属性の値をbuttonにすると改善されますか? <button id="button" type="button">検索</button>
moru

2021/04/05 15:01

type属性をbuttonにすると改善されました… 属性を設定しないとデフォルトでsubmitになってしまうということでしょうか‥ また一つ勉強になりました。ありがとうございます。
guest

回答1

0

検索ボタンのtype属性の値をbuttonにするとどうでしょうか。

<button id="button" type="button">検索</button>

投稿2021/04/05 15:02

Lulucom

総合スコア1899

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

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

Lulucom

2021/04/05 15:02

> 属性を設定しないとデフォルトでsubmitになってしまうということでしょうか‥ はい、その通りです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問