2017-10-03 16 views
0

ドロップダウンを選択してチームを選んでそのチームでプレーしているプレイヤーをリストアップし、その特定のプレーヤーを返すだけの場合...私はこれを行うが、これは私のブレードajaxを使って変数をブレードに渡す方法Laravel

{!! Form::open(array('url'=>'','files'=>'true')) !!} 

         <div class="form-group col-xs-12 mb-2"> 
          {!! Form::select('category',[''=>'Chose Team to See Players']+$teams, null,['class'=>'form-control','id'=>'category']) !!} 

         </div> 

         {!! Form::close() !!} 
        </div> 
        <div class="table-responsive"> 
         <table class="table"> 
          <thead class="bg-yellow bg-lighten-3"> 
          <tr> 
           <th>Photo</th> 
           <th>Name</th> 
           <th>Position</th> 
           <th>Age</th> 
           <th>Edit</th> 
           <th>Delete</th> 
           <th>Add/Edit Biography</th> 
          </tr> 
          </thead> 
          <tbody> 
          @foreach($players as $player) 

           <tr> 
            <td><img src="{{$player->photo->file}}" alt="cukaricki-{{$player->playerName}}" width="150px"></td> 
            <td>{{$player->playerName}} {{$player->playerLastName}}</td> 
            <td>{{$player->position}}</td> 
            <td>{{$player->age}}</td> 
            <td> {!! Form::open(['method'=>'GET','action'=>['[email protected]',$player->id]]) !!} 

             <div class="class form-group"> 
              {!! Form::submit('Edit',['class'=>'badge btn-info btn-sm']) !!} 
             </div> 

             {!! Form::close() !!}</td> 

            <td> 

             {!! Form::open(['method'=>'DELETE','action'=>['[email protected]',$player->id]]) !!} 

             <div class="class form-group"> 
              {!! Form::submit('Delete',['class'=>'badge btn-danger btn-sm']) !!} 
             </div> 

             {!! Form::close() !!} 
            </td> 


             @if($player->checkBiography($player->id) == false) 

             <td> 
              {!! Form::open(['method'=>'GET','action'=>['[email protected]',$player->id]]) !!} 

              <div class="class form-group"> 
               {!! Form::submit('Create',['class'=>'badge btn-success btn-sm']) !!} 
              </div> 

              {!! Form::close() !!}</td> 

              @else 
             <td> 
             {!! Form::open(['method'=>'GET','action'=>['[email protected]',$player->id]]) !!} 

             <div class="class form-group"> 
              {!! Form::submit('Edit',['class'=>'badge btn-warning btn-sm']) !!} 
             </div> 

             {!! Form::close() !!}</td> 
            @endif 

           </tr> 

          @endforeach 

          </tbody> 
         </table> 
        </div> 

ルート

あるかのforeachと私のことを行うために、ブレードにAJAXダイレクトから変数を送信し、その後にする:) ...おかげでたくさん...

トンを知っています

Route::get('/ajax-subcat',function(){ 

    $cat_id = Illuminate\Support\Facades\Input::get('cat_id'); 

    $team=App\Team::where('id',$cat_id)->first(); 

    $arrays=explode(",",$team->player_id); 

    foreach($arrays as $array){ 
     $players[]=App\Player::where('id',$array)->first(); 

    } 
    return Response::json($players); 

}); 

およびAja x:

<script> 

    $('#category').on('change',function (e) { 

     console.log(e); 

     var cat_id = e.target.value; 

     //ajax 

     $.get('/ajax-subcat?cat_id='+cat_id,function (data) { 

      //success data 
      $('#ovde').empty(); 
      $.each(data,function (index, Obj) { 

//ルートプレイヤーから$選手を送る方法は?

   ); 
      }); 


     }); 

    }); 

</script> 

答えて

0

あなたはtrのテーブル本体をクリアし、受け取ったデータを新しいものに追加する必要があります。

あなたのJavaScriptループの中に、あなたとあなたを含む文字列を作成することができます。

var photo = '<td>' + obj.photo + '</td>'; 
var name = '<td>' + obj.name + '</td>'; 
... 
... 
var playerRow = '<tr>' + photo + name + etc... + '</tr>'; 

$("#yourTable > tbody:last").append(playerRow); 

これはちょっと面倒です。あなたは、Vuejsのようなフレームワーク、あるいはあなたが選んだものを使うことを検討するかもしれません。これらのタスクを多く簡略化します

0

あなたができることは、次のコードの部分的なブレードを作成し、それを "player_list.blade.php"と呼ぶことです。

あなたのルートの匿名メソッドでは、そのビューをレンダリングし、jsonを返す代わりにレンダリングされたhtmlを送信します。

$viewRendered = view('player_list', compact('players'))->render(); 
return Resposne::json(['html'=>$viewRendered]); 

代わり

return Response::json($players); 

この方法の次のコード

使用して、あなたはあなたの意見に任意の変数を渡すことができます。

+0

私は刃全体を渡す必要がありますか、またはforeach - endforeachを渡す必要がありますか? foreach内のすべてを削除するために私のメインブレードに必要ですか?以前のajaxを変更する必要がありますか?ありがとう、たくさんの男... –

+0

私はforeach内だけのplayer_list.blade.phpを含んでいます。私のプレイヤーは変わっていません...しかし、私は検査してネットワークに目を向けると、テーブルのプレビューをよくしますが、メインブレード..私はAJAXを使用するたびにこの変更をフラッシュする必要がありますか? –

+0

最初にメインブレードも変更して、新しく作成したパーシャルをメインブレードに含めます。 (部分的な再利用)。 2番目にあなたのtobodyタグにidを与え、jqueryを使ってその内容を置き換えるか最後のtrタグの後ろに追加するかは、必要に応じて変わります。だからあなたは今は必要ない。 –

関連する問題