html
1<form> 2<table class="result"> 3<tr> 4<th>名前</th> 5<td><input type="text" id="name"></td> 6<th>題名</th> 7<td><input type="text"id="sub_name" ></td> 8</tr> 9<div> 10<input type="button" name="ajax" id="ajax" value="検索"> 11<script th:src="@{/js/books.js}" id="selectNum"></script> 12</table> 13</form>
js
1$(function(){ 2 // ajax button click 3 $('#ajax').on('click',function(){ 4 $.ajax({ 5 url:'/books', 6 type:'GET', 7 data:{ 8 'name':$('#name').val(), 9 'sub_name':$('#sub_name').val() 10 } 11 }) 12 // ajaxリクエストが成功した時発動 13 .done( (data) => { 14 $('.result').html(data); 15 console.log(data); 16 }) 17 // ajaxリクエストが失敗した時発動 18 .fail( (data) => { 19 $('.result').html(data); 20 console.log(data); 21 }) 22 // ajaxリクエストが成功・失敗どちらでも発動 23 .always( (data) => { 24 25 }); 26 }); 27});
controller
1package com.example.demo; 2import java.util.Map; 3 4import org.springframework.stereotype.Controller; 5import org.springframework.ui.Model; 6import org.springframework.web.bind.annotation.RequestMapping; 7import org.springframework.web.bind.annotation.RequestMethod; 8import org.springframework.web.bind.annotation.RequestParam; 9import org.springframework.web.bind.annotation.ResponseBody; 10 11@Controller 12public class books { 13 14 @RequestMapping(value = "books", method = RequestMethod.GET) 15 16 public String booksList(Model model) { 17 18 return "books.html"; 19 20 } 21 22 @RequestMapping(value = "/books/search", method = RequestMethod.GET) 23 @ResponseBody 24 public String search6(@RequestParam Map<String, String> params) { 25 26 return ; 27 28 } 29 30}
1,<table class="result"></table> を付け加えました。
問題 検索ボタンを押すとtableが二重に重なって表示されてしまいます。
tableが二つできてしまいます。これは何が原因なのかがわからなく困っております。。
実現したいこと
画面上のinputに入力された値をその同じinput上に非同期処理させたいです。
jQuery を使っているのであれば、「jQuery」タグをつけてください。
肝心の result が HTML にないようなので、提示するコードの範囲を広げてください。
https://teratail.com/questions/211453 修正されていないコードなので、最新のコードに書き換えましょう。また、「.result」の要素が提示されていないため、追加も書き換えも起こらないコードになっています。
ようやく準備ができた感じですね
どういうデータが飛んでくるか、それをどう表示したいのか明記してください
有難うございますm(__)m
googleで検索した内容を表示させるような仕組みをつくりたいです。
今はajaxの非同期処理の時点でつまずいております。。
googleの検索はajaxで受け取れないのでは
ajaxは原則ドメインを超えられない前提で行ってください
なにかサンプル戻りデータをつくれるような
サーバーサイドのプログラムが実行できる環境にありますか?
はい、実行できるサーバーあります。コントローラを追加いたしました
そちらで実行の確認をしたいです
javaの検証はできないので、ajaxのdoneで最初に戻ってくるconsole.log(data);の値と
2回めに戻ってくる値の両方を質問に追記してください
回答1件
あなたの回答
tips
プレビュー