Yêu cầu thg 6 18, 2021 3:52 SA 83 1 2
  • 83 1 2
+1

Em bị lỗi khi thử truyền view qua json, các bác giúp em tìm hiểu nguyên nhân với ạ

Chia sẻ
  • 83 1 2

controller: public function addFlight($id) { session()->forget('ticket');

    $flight = $this->flightModel->find($id);

    $ticket = session()->get('ticket');
    $ticket[$id] = [
        'flight_ID' => $id,
        'aircraft_ID' => $flight->aircraft_ID,
        'start_airport_ID' => $flight->start_airport_ID,
        'start_time' => $flight->start_time,
        'arrive_airport_ID' => $flight->arrive_airport_ID,
        'arrive_time' => $flight->arrive_time,
        'price' => $flight->price,
    ];

    session()->put('ticket', $ticket);
    return response()->json([
        'code' => 200,
        'component' => view('client.home.booking_list')->with(['ticket' => session()->get('ticket')])->render(),
    ],200);
}

ajax
$('.add_flight').click(function(e){
e.preventDefault();
let url = $(this).data('url');
let id = $(this).data('id');
$.ajax({
    type:'GET',
    url:url,
    dataType:'json',
    success:function(data){
        console.log(data);
        if(data.code === 200){
            $('.booking_list').html(data.component);
        }
    },
    error: function(){
        alert('Đã có lỗi xảy ra!');
    }
});

});

2 CÂU TRẢ LỜI


Đã trả lời thg 6 18, 2021 3:55 SA
0

sao bạn không trả về 1 view luôn ?

Chia sẻ
Avatar Nguyen Trung Kien @trungkien4723
thg 6 18, 2021 3:58 SA

em đang muốn hiển thị dữ liệu mà không phải reset lại trang, em đang làm theo hướng dẫn này trên youtube https://www.youtube.com/watch?v=N2hJfSlaId8&t=1477s nhưng lại bị lỗi 500

thg 6 18, 2021 4:27 SA

@trungkien4723 ý tớ là bạn trả về view có nghĩa là return view('client.home.booking_list')->with(['ticket' => session()->get('ticket')]); , sau lấy gọi ajax thì ajax nó sẽ lấy toàn bộ trang đấy và gán vào page của bạn đang làm ý.

Avatar Nguyen Trung Kien @trungkien4723
thg 6 18, 2021 4:37 SA

@khoanld98 sau khi return như thế thì phải gọi từ ajax thế nào ạ? em mới tập tành chưa biết gì cả :v

thg 6 18, 2021 6:15 SA

@trungkien4723 sorry bạn vì trả lời hơi chậm trễ, trong controller bạn trả về view blade hay một đoạn thẻ html như bình thường, sau đó gọi ajax đến đường đẫn đấy để lấy ra. bản chất của ajax là lấy toàn bộ những gì mà bạn khai báo đường dẫn đó.

Avatar Nguyen Trung Kien @trungkien4723
thg 6 18, 2021 6:27 SA

@khoanld98 Cảm ơn bác, không có gì phải xin lỗi ở đây cả, em là người đang được giúp mà 😃 em đã tìm ra vấn đề trên stackoverflow cảm ơn bác đã dành thời gian cho câu hỏi của em

Đã trả lời thg 6 18, 2021 9:33 SA
0

bác đưa vào json thì nên có encode bác ạ

Chia sẻ
Avatar Nguyen Trung Kien @trungkien4723
thg 6 18, 2021 9:57 SA

Em chưa biết gì về cái này nhưng sẽ cố tìm hiểu thêm, cảm ơn bác :3

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí