Получение правильных значений из идентификаторов в Laravel - PullRequest
0 голосов
/ 05 мая 2019

У меня проблема с получением фактических значений из идентификаторов. Я не могу понять проблему, потому что, сохраняя эти значения, я получаю их с помощью Ajax в раскрывающемся списке, где он сохраняет свои идентификаторы из раскрывающегося списка. Но когда я пытаюсь вернуть эти значения, тогда они показывают мне эти идентификаторы, а не фактические значения. Я не могу понять, как я могу получить реальные значения из этих идентификаторов. Я также добавил их в свой метод index в контроллере, но он не работает, потому что это Ajax. Ниже приведен мой код, пожалуйста, дайте мне знать, если вы хотите узнать больше об этом.

Действия контроллера для создания формы.

public function create()
{
    $classes = StudentsClass::pluck('class_name', 'id')->all();
    $rep_cat = ReportCtegories::pluck('name', 'id')->all();

    return view('admin.reports.create', compact('classes', 'rep_cat'));
}

public function getStudentId($id)
{
    $students = DB::table("students")->where("students_class_id", $id)->pluck("student_id", "id");

    return json_encode($students);
}

public function getStudentName($id)
{
    $students = DB::table("students")->select("id", DB::raw("CONCAT(first_name, ' ', last_name) as name"))
        ->where("students_class_id", $id)->pluck("name", "id");

    return json_encode($students);
}

Ajax для получения значений.

<script>

        $(document).ready(function () {

            //FOR LOADING STUDENTS
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });

            $('select[name="class_id"]').on('change', function () {
                var classID = $(this).val();
                if (classID) {

                    $.ajax({

                        url: '/reports/ajax/' + classID,
                        type: "GET",
                        dataType: "json",
                        success: function (data) {

                            var markup = '';
                            markup = '<thead><tr class="filters"><th style="width: 2%" class="align-middle text-center"><input type="checkbox" id="options"></th><th style="width: 15%" class="text-center">Student ID<input type="text" class="form-control" disabled></th> <th style="width: 15%" class="text-center">Student Name<input type="text" class="form-control" disabled></th> <th style="width: 15%" class="text-center">Report Category<input type="text" class="form-control" disabled></th> <th style="width: 15%;" class="align-middle text-center">Actions</th> <tr></thead><tbody>';

                            $.each(data, function (key, value) {

                                markup += '<tr> <td><input class="checkBoxes" type="checkbox" name="checkBoxArray[]" value="' + value.id + '"></td> <td><input type="hidden" value="' + value.student_id + '" name="student_id[]">' + value.student_id + '</td> <td><input type="hidden" value="' + value.student_name + '" name="student_name[]">' + value.student_name + '<td><input type="hidden" value="' + value.report_categories_id + '" name="report_categories_id[]">' + value.report_categories_id + '</td>' +  '<td style=" width=12%" class="text-center"> <a data-toggle="modal" data-target="#editAttendanceModal' + value.id + '"""><button title="Edit" class="btn btn-outline-primary"><span class="fas fa-pencil-alt"></span></button></a> </td>' + '</td> <tr>';

                            });
                            markup += '</tbody>';
                            $('table[id="studentsData"]').html(markup);
                        }
                    });
                }

            });
        });

    </script>

1 Ответ

0 голосов
/ 05 мая 2019

Прежде всего, я рекомендую вам использовать,

return response()->json($students)

Второе извлечение возвращает только массив идентификаторов (в вашем случае)

Я думаю, вы можете попробовать это.

public function getStudentId($id)
{
    $students = DB::table("students")->where("students_class_id", $id)->get();
    return response()->json($students);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...