我是Jquery和Ajax的新手。我在视图刀片中有一个动态选择选项,然后我试图通过将选定值传递给控制器(在laravel中)并获取选定值的详细信息来填充HTML表>
我尝试使用带有(post url)的JQuery和Ajax来做到这一点,但是我的表只是被“未定义”填充,请帮助我找出代码中的错误
我的脚本
$(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
答案 0 :(得分:1)
您尝试访问方法内部不可用的请求对象。如下更新您的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);
}
答案 1 :(得分:1)
将此添加到您的查询->get();
public function makeTable()
{
$data = hotelroom::where('hotel_id', '=', $request->get('value'))->get();
return Response::json($data);
}
还要在键盘上按ctrl + shift + c来监视脚本是否正在执行
答案 2 :(得分:0)
谢谢大家的支持,我努力通过研究此代码使它正常工作(类似的问题) Retrieve records into table using Ajax in Laravel