Ajax обновить поле базы данных в laravel шаблоне блейда - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть список отелей на выбор. Я хочу обновить базу данных о выбранной гостинице, если она обновит поле, о котором я хочу сообщить на главной странице. это ajax функция

function showRoom($hotel_plan_id) {
var id = $hotel_plan_id;
if (id !== "") {
  $.ajax({
    type: "POST",
    dataType: 'JSON',
    url:'{{ route('home', '') }}/'+id,
    data:{_token:'{{ csrf_token() }}'},
    success:function(data){
       alert(data);
    },
    error: function (result) {
    alert("Error occur in the update()");
    }
  });


}

} мой контроллер

public function update(Request $request, $hotel_plan_id)
{ 
    $hotel=plan_hotel::where('hotel_plan_id', $hotel_plan_id)->first();
    $hotel->hotel_name = $request->input('hotel_name');
    //$hotel ->room_name = $request->input('room_name');
    $hotel->save();
   // return redirect('/home')->with('success', 'price updated');

}

мой маршрут

Route::post('home/{hotel_plan_id}', 'HomeController@update')->name('home');

моя форма выбора

 {!! Form::select('hotel_name', array($item[4], $item[10]),'S', array('style'=>' Border:none; ', 'id' => 'hotel_id', 'onclick'=>"showRoom(this.value, $item[8])"));!!}

Ответы [ 3 ]

1 голос
/ 11 февраля 2020

У вас ошибка с ajax url, и вы также не передаете значение названия отеля.

Проверьте это изменение.

function showRoom($hotel_plan_id) {
var id = $hotel_plan_id;
if (id !== "") {
  $.ajax({
    type: "POST",
    dataType: 'JSON',
    url:'/home/' + id,
   data:{_token:'{{ csrf_token() }}', hotel_name: 'Your value here'},
  });
}
0 голосов
/ 11 февраля 2020

Вы должны вернуть json объект, подобный этому

return response->json([
       'status'    =>  200,
       'result'    => true,
       'error'     => false,
       'data'      => $hotel
 ]);
0 голосов
/ 11 февраля 2020

Пожалуйста, верните json ответ

return response()->json();
...