Ячейки таблицы возвращаются с «неопределенным» при попытке заполнить с помощью jQuery и Ajax - PullRequest
0 голосов
/ 18 июня 2019

Я новичок в Jquery и Ajax. У меня есть опция динамического выбора в моем блэйде просмотра, а затем я пытаюсь заполнить таблицу HTML, передавая выбранное значение в контроллер (в laravel) и получая подробную информацию о выбранных значениях

Я пытался сделать это с JQuery и Ajax с помощью (post url), но моя таблица только заполняется "undefined", пожалуйста, помогите мне выяснить ошибки в моем коде

мой скрипт

$(document).ready(function(){   
   $( "#dtl" ).click(function() {
    var value = $("#hotelname :selected").val();
     $.ajax({
        url: "{{ route('Rooms.maketable') }}",
        method:'POST', 
        data : {value:value},        
            success: function (data) {
              // console.log(data);
            $('#datatable tr').not(':first').not(':last').remove();
            var html = '';
            for(var i = 0; i < data.length; i++){
                html += '<tr>'+
                            '<td>' + data[i].hotel_id + '</td>' +
                            '<td>' + data[i].available_date + '</td>' +
                            '<td>' + data[i].singlerooms + '</td>' +
                            '<td>' + data[i].doublerooms + '</td>' +
                            '<td>' + data[i].deluxrooms + '</td>' +
                            '<td>' + data[i].deluxdoublerooms + '</td>' +
                            '<td>' + data[i].superiorsuitrooms + '</td>' +
                        '</tr>';
                }   
            $('#datatable tr').first().after(html);
        },
        error: function (data) {
        }
    });
});
});

два метода в контроллере

public function showform()
    {
        $hotelname  =  hotels::all();
        return view('admin.hotelrooms.index',compact('hotelname'));
    }
 }
    public function makeTable()
      {
        $data = hotelroom::where('hotel_id', '=', $request->get('value'));          
        return Response::json($data);
    }

мои маршруты

Route::get('/home/Rooms', 'Admin\RoomsController@showform')->name('Rooms');
Route::post('/home/Rooms', 'Admin\RoomsController@makeTable')->name('Rooms.maketable');

expected to fill my HTML blank table with data receive from hotelroom table
but its only getting fills with "undefined" in every cell

Ответы [ 3 ]

1 голос
/ 18 июня 2019

добавьте это к вашему запросу ->get();

public function makeTable()
      {
        $data = hotelroom::where('hotel_id', '=', $request->get('value'))->get();          
        return Response::json($data);
    }

также нажмите Ctrl + Shift + C на клавиатуре, чтобы отслеживать, выполняет ли ваш скрипт

1 голос
/ 18 июня 2019

Вы пытаетесь получить доступ к объекту запроса, который недоступен внутри вашего метода. обновите ваш метод makeTable, как показано ниже, убедитесь, что вы импортируете use Illuminate\Http\Request; поверх вашего контроллера.

   public function makeTable(Request $request)
    {
        $data = hotelroom::where('hotel_id', '=', $request->get('value'))->get(); //  add get() function here         
        return Response::json($data);
    }
0 голосов
/ 18 июня 2019

Спасибо всем за вашу поддержку, мне удалось заставить его работать, изучив этот код (аналогичный вопрос) Извлечение записей в таблицу с использованием Ajax в Laravel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...