如何使用ajax将变量传递给刀片Laravel

时间:2017-10-03 00:32:54

标签: php ajax laravel

我希望当我选择下拉菜单并选择团队列出在该团队中玩的玩家并且只回馈给那些特定的玩家...我这样做,但我不知道如何发送变量ajax直接在刀片中,然后用foreach做我的事:) ...非常感谢...

这是我的刀片

{!! 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'=>['PlayerController@edit',$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'=>['PlayerController@destroy',$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'=>['BiographyController@show',$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'=>['BiographyController@edit',$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>

路线

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);

});

和Ajax:

<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>

2 个答案:

答案 0 :(得分:0)

您需要清除表格中的tr,并使用您收到的数据附加新的。

在你的javascript循环中,你可以创建一个包含你和s的字符串。

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这样的框架,或者您选择的任何框架。它简化了很多这些任务

答案 1 :(得分:0)

你可以做的是创建以下代码的部分刀片并调用它,&#34; player_list.blade.php&#34;。

@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'=>['PlayerController@edit',$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'=>['PlayerController@destroy',$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'=>['BiographyController@show',$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'=>['BiographyController@edit',$player->id]]) !!}

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

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

                            </tr>

                        @endforeach

然后在你的路由匿名方法中,渲染该视图并发送渲染的html而不是发送回json。

使用以下代码

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

而不是

return Response::json($players);

这样您就可以将任何变量传递给您的视图。