从 jQuery 中的数据库获取 player_name 文本值

Get player_name text value from database in jQuery

我想从数据库中的分数 table 中获取文本值,这里是我的分数 table 图像。

Player_name 因为 Player_id 是玩家 table 的外键 我可以查看 player_id 但我想查看 [=41] 的文本值=]这是玩家table

的玩家名称

这是球员的形象table

这是我输入 public.blade.index

的输出

这是我的PublicController.php

public function view()
    {
        $data = Score::all();
        $countries = DB::table('matchhs')
            ->get();

        return view('public.index', compact('countries','data'));
    }

    public function getStates(Request $request)
    {
        $states = DB::table('scores')
            ->where('match_id', $request->match_id)
            ->get();

        if (count($states) > 0) {
            return response()->json($states);
        }
    }

这是我的public.blade.php

<h1 class="lead">Select match name</h1>
            <div class="mb-3">
                <select class="form-select form-select-lg mb-3" id="country">
                    <option selected disabled>Select match</option>
                    @foreach ($countries as $country)
                        <option value="{{ $country->id }}">{{ $country->match_name }}</option>
                    @endforeach
                </select>
            </div>
            <div class="mb-3">
                <table id="state" class="table table-bordered table-striped table-sm"></table>
            </div>

这是我的 jQuery 代码

<script type="text/javascript">
    $(document).ready(function () {
        $('#country').on('change', function () {
            var countryId = this.value;
            $('#state').html('');
            $.ajax({
                url: '{{ route('getStates') }}?match_id='+countryId,
                type: 'get',
                success: function (res) {
                    $('#state').html('<table><thead><tr><th>SL</th><th>Player Name</th><th>Score Name</th><th>Score Slug</th></tr></thead></table>');
                    $.each(res, function (key, value) {
                        $('#state').append('<tbody><tr><td>' + value.id + '</td><td>' + value.player_id + '</td><td>' + value.score_name + '</td><td>' + value.score_slug + '</td></tr></tbody>');
                    });
                }
            });
        });
    });
</script>

您需要加入(请参阅 Laravel docs)。

public function getStates(Request $request)
{
  $states = DB::table('scores')
      ->join('players', 'scores.player_id', '=', 'players.id')
      ->where('scores.match_id', $request->match_id)
      ->select('scores.*', 'players.player_name')
      ->get();

    if (count($states) > 0) {
        return response()->json($states);
    }
}

那么玩家的名字应该可以在 Javascript 中使用 value.player_name 访问。