Laravel+JQueryで、ボタンをクリックするとAjaxでGETリクエストをコントローラーに送り、jsonで返ってきた値をhtml上に表示する、ということを実現したいです。
取ってきた連想配列をeachで回して値を取り出しているのですが、html上に表示する際に取り出した最後の1つの結果のみ表示されてしまいます。
想定としては、2つ結果を取り出したとしたら、2つ結果がhtmlに表示される想定でした。
$.eachの下のconsole.log(value.name)では、想定通りの値が取れています。
しかし、実際にhtml上に表示させてみると、取り出した最後の結果(test2)しか表示されませんでした。
ずっと原因がうまく掴めずで詰まっている状況です。
こちらの考えられる理由についてご教示いただけますと幸いです。
js
1$("#bt").click(function () { 2 $.ajax({ 3 type: "get", //HTTP通信の種類 4 url: "/getuser", 5 dataType: "json", 6 }) 7 //通信が成功したとき 8 .done((res) => { 9 // console.log(res) 10 $.each(res, function (index, value) { 11 console.log(value.name) 12 html = ` 13 <tr class="user-list"> 14 <td class="col-xs-2">ユーザー名:${value.name}</td> 15 </tr> 16 `; 17 }); 18 $(".user-table").append(html); //できあがったテンプレートをビューに追加 19 }) 20 //通信が失敗したとき 21 .fail((error) => { 22 console.log(error.statusText); 23 }); 24});
php
1// コントローラー側 2 3 public function getUser() 4 { 5 $users = User::select('name','email')->get(); 6 return $users; 7 } 8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/20 00:36
2020/11/20 00:57
2020/11/20 01:20