我无法使用Ajax从Controller检索数据 这是我的代码
触发器
<select id="course_select" name="course_select" class="form-control" required autofocus value="{{old('course_select')}}" onchange="getCourse()">
我的ajax部分
function getCourse(){
var id=document.getElementById('course_select').value;
alert(id);
$.ajax({
type:'get',
url:'getCourseLessons/'+id,
datatype:'json',
success:function(data){
console.log(data);
alert(data.lessons);
}
});
}
和我的控制器
public function getCourseLessons($id){
$lessons = DB::table('lessons')->select('id','Lesson_name')->where('course_id','=',$id)->get();
return response()->json(array('lessons'=>$lessons));
}
结果console.log(数据)
console.log(data)
ReferenceError: data is not defined[Learn More]
我的路线。
Route::get('/getcourselessons/{id}','AdminController@getCourseLessons');
我将非常感谢我所能提供的所有帮助。
答案 0 :(得分:0)
<select id="course_select" name="course_select" class="form-control" onchange="getCourse()">
<option>hi</option>
<option>hello</option>
</select>
您的选择似乎有问题,因为上面的代码将输出 检查以下内容
value="{{old('course_select')}}"
还有一件事我看不到CSRF
在脚本中添加一个地方
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
答案 1 :(得分:0)
尝试此兄弟将您更改为url
或route
function getCourse(){
var id=document.getElementById('course_select').value;
var url = '{{ url('getCourseLessons/')}}/'+id;
alert(id);
$.ajax({
type:'get',
url:url,
datatype:'json',
success:function(data){
console.log(data);
alert(data.lessons);
}
});
}
更改您的route
Route::get('getcourselessons/{id}','AdminController@getCourseLessons');
答案 2 :(得分:0)
1-轻按路线
Route::get('/getCourseLessons/{id}','YourController@getCourseLessons');
2-更改您的Ajax属性
function getCourse(){
var id=document.getElementById('course_select').value;
alert(id);
$.ajax({
url: '{{ url("getCourseLessons") }}',
type:'get',
datatype:'json',
data: {
"id": id,
"_token": "{{ csrf_token() }}"
},
success:function(data){
console.log(data);
alert(data.lessons);
}
});
}
答案 3 :(得分:0)
首先请检查您在Route / Web.php中使用的路由,它应该是这样
Route::get('getCourseLessons/{id}','YourController@getCourseLessons');
检查控制器。
public function getCourseLessons($id){
$lessons = \DB::table('lessons')->select('id','Lesson_name')->where('course_id',$id)->get();
return response()->json(array('lessons'=>$lessons));
}
根据您的Ajax代码确定,但您也可以尝试这样做。
function getCourse(){
var id=$('#course_select').val();
alert(id);
$.ajax({
type:'get',
url:'{{url('getCourseLessons')}}/'+id,
datatype:'json',
success:function(data){
console.log(data);
alert(data.lessons);
}
});
}