我正在使用 Laravel 制作酒店預訂應用程式。我在我必須根據輸入的日期過濾房間的部分。我正在使用 ajax 來實作這一點。
$('#check-availability').on('click', function(){
var checkin_date = $('#check-checkin').val();
$.ajax({
url:"{{url('/available_room')}}/" checkin_date,
dataType: 'json',
beforeSend:function(){
$('#room_list').html('Loading');
},
success:function(res){
var r_html = '';
var input_checkin_date = $('#check-checkin').val();
var input_checkout_date = $('#check-checkout').val();
var input_adults = $('#check-adults').val();
var input_children = $('#check-children').val();
$.each(res.data,function(index,row){
r_html = '<div ><div ><div ></div><div ><div ><h5 id="room_name">' row.room_name '</h5><form action="/room/' row.id '" method="GET" name="grab"><input type="hidden" id="a_checkin' row.id '" name="a_checkin" value="' input_checkin_date '"><input type="hidden" id="a_checkout' row.id '" name="a_checkout" value="' input_checkout_date '"><input type="hidden" id="a_adults' row.id '" name="a_adults" value="' input_adults '"><input type="hidden" id="a_children' row.id '" name="a_children" value="' input_children '"><button type="submit" id="btn-view' row.id '" ><i ></i>View</button></form></div><p id="room_price">Start from <strong>P' row.price ' / night</strong></p><div ><span id="room_hotel" ><i ></i>' row.hotel '</span><span id="room_dimension" ><i ></i>' row.dimension '</span><span id="room_bed" ><i ></i>' row.no_of_beds ' beds</span></div><p id="room_desc" >' row.description '</p><div >' row.amenities '</div></div></div></div>';
});
$('#room_list').html(r_html);
$('.txt_checkin').html(input_checkin_date);
$('.txt_checkout').html(input_checkout_date);
$('.txt_adults').html(input_adults);
$('.txt_children').html(input_children);
var checkin_id = $('.a_checkin').attr('id');
var checkout_id = $('.a_checkout').attr('id');
var adults_id = $('.a_adults').attr('id');
var children_id = $('.a_children').attr('id');
var get_checkin = $('#' checkin_id).val();
var get_checkout = $('#' checkout_id).val();
var get_adults = $('#' adults_id).val();
var get_children = $('#' children_id).val();
localStorage.setItem('view_checkin', get_checkin);
localStorage.setItem('view_checkout', get_checkout);
localStorage.setItem('view_adults', get_adults);
localStorage.setItem('view_children', get_children);
}
});
}).click();
這是我的控制器
public function check_available_room(Request $request, $checkin_date)
{
$available_rooms = DB::SELECT("SELECT * FROM rooms WHERE id NOT IN (SELECT room_id FROM bookings WHERE '$checkin_date' BETWEEN checkin_date AND checkout_date)");
return response()->json(['data'=>$available_rooms]);
}
這是輸出

我的問題是如何修改查詢或 Ajax 代碼以將設施(底部的數字)顯示為這樣的圖示(設施是一個單獨的表格)

最初我在視圖上使用 PHP 實作了這一點
@php
$data = $roomDetails->amenities;
$dataArray = explode(',', $data);
$responseData = [];
foreach ($dataArray as $datas)
{
$result = DB::table('amenities')->where('id', $datas)->get();
foreach ($result as $res)
{
$responseData[] = '<button type="button" >
<i hljs-variable">$res->icon .'"></i></button>';
}
}
@endphp
<div class="d-flex flex-wrap">
@foreach ($responseData as $output)
{!! $output !!}
@endforeach
</div>
謝謝
編輯
我能夠通過修改 ajax 中的代碼來顯示圖示
var r_html = '';
var a_html = '';
$.each(res.data,function(index,row){
r_amenities = row.amenities;
s_amenities = r_amenities.split(',');
$.each(s_amenities, function(index, amenities){
a_html = '<button type="button" ><i hljs-string">'"></i></button>';
});
console.log(s_amenities);
r_html = '<div ><div ><div ></div><div ><div ><h5 id="room_name">' row.room_name '</h5><form action="/room/' row.id '" method="GET" name="grab"><input type="hidden" id="a_checkin' row.id '" name="a_checkin" value="' input_checkin_date '"><input type="hidden" id="a_checkout' row.id '" name="a_checkout" value="' input_checkout_date '"><input type="hidden" id="a_adults' row.id '" name="a_adults" value="' input_adults '"><input type="hidden" id="a_children' row.id '" name="a_children" value="' input_children '"><button type="submit" id="btn-view' row.id '" ><i ></i>View</button></form></div><p id="room_price">Start from <strong>P' row.price ' / night</strong></p><div ><span id="room_hotel" ><i ></i>' row.hotel '</span><span id="room_dimension" ><i ></i>' row.dimension '</span><span id="room_bed" ><i ></i>' row.no_of_beds ' beds</span></div><p id="room_desc" >' row.description '</p><div >' a_html '</div></div></div></div></div>';
});
$('#room_list').html(r_html);
這是輸出

但它應該是這樣的。我怎么能這樣

這是console.log

uj5u.com熱心網友回復:
您需要設施和房間表之間的關系。并考慮為此使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/419781.html
標籤:
