Asked Jun 18th, 3:52 AM 74 1 2
  • 74 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 ạ

Share
  • 74 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 ANSWERS


Answered Jun 18th, 3:55 AM
0

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

Share
Avatar Nguyen Trung Kien @trungkien4723
Jun 18th, 3:58 AM

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

0
| Reply
Share
Jun 18th, 4:27 AM

@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 ý.

0
| Reply
Share
Avatar Nguyen Trung Kien @trungkien4723
Jun 18th, 4:37 AM

@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

0
| Reply
Share
Jun 18th, 6:15 AM

@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 đó.

0
| Reply
Share
Avatar Nguyen Trung Kien @trungkien4723
Jun 18th, 6:27 AM

@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

+1
| Reply
Share
Answered Jun 18th, 9:33 AM
0

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

Share
Avatar Nguyen Trung Kien @trungkien4723
Jun 18th, 9:57 AM

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

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.