这是我在视图中调用控制器的ajax函数。
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "get",
url: '/rooms/{{ $roomtype->type_id }}',
data: "",
success: function(data) {
console.log(data);
//var str = "<option value="+data+">"+data+"</option>";
//console.log(str);
//$( "select" ).append( str );
//$( ".inner" ).append( str );
}
})
});
</script>
这是我的控制器功能,由我的ajax从视图
调用public function numberOfRooms($type_id, Request $request) {
$room_model = new room;
// $request->session()->forget('no_rooms');
//$request->session()->regenerate();
$no_rooms = $room_model - > where('type_id', '=', $type_id) - > get() - > count();
//$request->session()->put('no_rooms', $no_rooms);
return back() - > with($no_rooms);
}
我希望变量在下拉列表中返回:
<select class="inner right-align">
<option value="" disabled selected>Choose your option</option>
<option>{{ $no_rooms }}</option>
</select>
答案 0 :(得分:0)
检查您的代码,您必须记住几件事
在控制器中,返回包含信息的数组
public function numberOfRooms(Request $request, $type_id)
{
$room_model = new room;
$no_rooms = $room_model->where('type_id', '=', $type_id)->get()->count();
return [ 'rooms' => $no_rooms];
}
HTML中的添加csrf令牌
<html>
<head>
...
<meta name="csrf-token" content="{{ csrf_token() }}" />
...
定义一个选择器:
<select id="your-selector" class="inner right-align">
<option value="" disabled selected>Choose your option</option>
</select>
JS中的
$(document).ready(function(){
$.ajaxSetup({
headers : {
'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
},
});
function loadRoom(){
$.ajax({
type: "get",
url: '/rooms/{{ $roomtype->type_id }}',
data: "",
success: function(data) {
for (room in data.rooms) {
$('#your-selector').append($('<option>', {
value: room.id,
text: room.name
}));
}
}
})
}
loadRoom();
});
我希望它能带来好运
答案 1 :(得分:0)
使用{{url('/rooms/'.$roomtype->type_id)}}
并添加data : {"_token": "{{ csrf_token() }}"}
在你的ajax网址。
并在控制器中更改return语句,如下所示
return Response::json($no_rooms);
答案 2 :(得分:0)
在您的控制器中
return array(
'rooms' => $rooms
);
在你的ajax中
在类型:“GET”或类似的任何地方
之后添加此dataType:“json”$ajax({
type: "get",
dataType: "json"
在你的ajax成功解析数据
success:function(data){
console.log(data.rooms)
}