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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

2042閲覧

LaravelでPHP変数をjavascript内部で利用したい。

Linkey

総合スコア77

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/02/11 13:02

編集2019/02/11 13:24

Laravelを勉強している者です。indexページ表示時にユーザーテーブルから取得した結果をtableタグで
表示させているのですが、これを都道府県の条件で抽出した結果を出力させたいです。
実装したソースコードは実行時エラーとなってしまい実現するための方法を探してみましたがなかなか見つかりませんでした。

UserController.php

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Illuminate\Support\Facades\DB; 7 8class UserController extends Controller 9{ 10 //indexページ表示前にユーザーテーブルを取得する 11 public function all() { 12 $users = DB::table('user') 13 ->select('user_id', 'name', 'picture_path', 'prefecture') 14 ->get(); 15 return view('index',[ 16 'db1'=>$users 17 ]); 18 } 19}

index.php

php

1(省略) 2 <head> 3 <meta charset="utf-8"> 4 <meta name="csrf-token" content="{{ csrf_token() }}"> 5 <title>ユーザー一覧</title> 6 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 7 <link rel="manifest" href="/manifest.json" /> 8 <script> 9       var pref; 10 var infoList; 11 window.onload = function() { 12 //ページ読み込み時にユーザー情報リストを保持しておく 13 infoList = $db1; 14 } 15 16 function selectPref(){ 17 var $elementReference = document.getElementById("kenmei"); 18 var $selectedIndex = $elementReference.selectedIndex; 19 pref = $elementReference.options[$selectedIndex].text; 20 } 21 22 function doSort(){ 23 var sortList = new Array(); 24 for(let i = 0; i < infoList.length; i++) { 25 if(infoList[i].prefecture == pref){ 26 sortList.push(infoList[i]); 27 } 28 } 29 $db1 = sortList; 30 } 31 </script> 32 </head> 33 <body> 34 都道府県 35 <select name="kenmei" id="kenmei" onChange="selectPref()"> 36 <option value="" selected>都道府県</option> 37 <option value="1">北海道</option> 38 <option value="2">青森県</option> 39 (中略) 40 <option value="47">沖縄県</option> 41 </select> 42 <input type="button" value="ソート" onClick="doSort()"> 43 44 <table border="1"> 45 @foreach ($db1 as $user_info) 46 <tr> 47 <td> 48 <img src="{{ $user_info->picture_path }}"> 49 <p>名前:{{ $user_info->name }}</p> 50 <p>出身地: {{ $user_info->prefecture }}</p> 51 </td> 52 <tr> 53 @endforeach 54 </table> 55 </body> 56(省略)

Laravel,phpに詳しい方がいましたら実装例を回答としていただけないでしょうか?

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

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

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

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

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

m.ts10806

2019/02/11 13:05

ちょっと丸投げっぽいので回答得られにくいかもしれませんが > 技術的に可能でしょうか? 「可能です」  だけでいいですかね? 質問の仕方で回答の方向性が決まるので、そこはきちんと得たい質問の仕方を心がけてください。
退会済みユーザー

退会済みユーザー

2019/02/11 13:20

mts10806さんが述べているようにどのような回答を求めているのでしょうか?
Linkey

2019/02/11 13:24

やりたいことを実現するためにどのような実装を行えば良いかが最適な方法が見つかりません。 そのため実装例を回答としていただきたいです。
退会済みユーザー

退会済みユーザー

2019/02/11 13:26 編集

ご自身でお調べになったことや見解を掲載された方が回答がつきやすいかと思います。 ご自身でしか全く同じな環境は構築できませんので... このままでは単なる作業依頼です。
guest

回答2

0

そもそもLaravelでjQuery使う時にこんな使い方はしないので…。
何を見て勉強したらこうなるんだろうってほど何もかも全部間違ってる。

こんな読み込み方はしないのでもっと基本から勉強しないとどうにもならない。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

Laravel側はjson返すAPIを作って
JS側はajaxでそのjsonを取得するのが普通のやり方。

とんでもなく手抜きな方法としては

<script> window.Laravel = {!! json_encode([ 'infoList' => $db1, ]) !!}; </script>

JS側からはこれで取得できる。

window.Laravel.infoList

Laravel5.3頃まではこの方法も使ってた。csrfのみ。
https://github.com/laravel/framework/blob/5.3/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub

つい最近質問箱がやらかしたように重要なデータを全部渡すなんてことはやってはいけない。
https://jiraffe.co.jp/news/2019/01/31/1321/

投稿2019/02/11 14:04

kawax

総合スコア10377

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

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

0

自己解決

AjaxでリクエストしてDBから取得した結果を表示させる実装で解決できました。

投稿2019/02/24 00:01

Linkey

総合スコア77

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問