laravel 中多个下拉值的第二个下拉值显示未定义值
Undefined value shows in the second dropdown value for multiple dropdown value in laravel
我只想使用 1 table 制作多个下拉菜单。我没有收到任何错误,但是当我 select 第一个下拉值时,第二个下拉值显示 undefined
值。我错过或错了哪一部分?
控制器:-
public function index(Request $req)
{
$shiftpattern = ShiftPattern::all();
return view('admin.usershiftpattern',
compact('shiftpattern'));
}
public function findSapCode(Request $request)
{
$data=ShiftPattern::select('code','id')->where('id',$request->id)->take(100)->get();
return response()->json($data);
}
查看:-
<div class="col-md-3">
<select class="shiftPatternID" name="inputShiftPatternID" id="inputShiftPatternID" required style="width: 100%">
<option value="" hidden disabled selected>Please Select</option>
@foreach($shiftpattern as $singleshiftpattern)
<option value="{{$singleshiftpattern->id}}">{{$singleshiftpattern->id}} - {{$singleshiftpattern->code}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-3">
<select class="sapCode" name="inputSapCode" id="inputSapCode" required style="width: 100%">
<option value="0" disabled="true" selected="true">Please Select</option>
</select>
</div>
</div>
脚本内部视图:-
$(document).ready(function(){
$(document).on('change','.shiftPatternID',function(){
var cat_id=$(this).val();
var div=$(this).parent().parent().parent();
var op=" ";
$.ajax({
type:'get',
url:'{!!URL::to('findSapCode')!!}',
data:{
'id':cat_id
},
success:function(data){
op+='<option value="0" selected disabled>Please Select</option>';
for(var i=0;i<data.length;i++){
op+='<option value="'+data[i].id+'">'+data[i].sapCode+'</option>';
}
div.find('.sapCode').html(" ");
div.find('.sapCode').append(op);
},
error:function(){
}
});
});
});
未定义的错误是由于从 object
访问了错误的密钥。您正在访问 sapCode
但它不存在于对象中,因此它抛出 undefined
。根据 ajax 响应应该是 code
而不是 sapCode
op+='<option value="'+data[i].id+'">'+data[i].code+'</option>';
如有错误请多多包涵。我的英语很基础。
模型 get() 函数将重新运行 Collection 个实例
控制器
public function findSapCode(Request $request)
{
return ShiftPattern::select('code','id')->where('id',$request->get(id))->take(100)->get()->toJSON();
}
您可以通过URL::to('findSapCode')查看合集内容
脚本内部视图:-
$(document).on('change','.shiftPatternID',function(){
var cat_id=$(this).val();
var div=$(this).parent().parent().parent();
var op=" ";
$.ajax({
type:'get',
url:'{!!URL::to('findSapCode')!!}',
data:{
'id':cat_id
},
success:function(data){
data.forEach(function (value, index) {
div.find('.sapCode').append('<option value="'+data.id+'">'+data.sapCode+'</option>');
});
},
error:function(){
}
});
});
使用 foreach() 函数访问每一行数据。
我只想使用 1 table 制作多个下拉菜单。我没有收到任何错误,但是当我 select 第一个下拉值时,第二个下拉值显示 undefined
值。我错过或错了哪一部分?
控制器:-
public function index(Request $req)
{
$shiftpattern = ShiftPattern::all();
return view('admin.usershiftpattern',
compact('shiftpattern'));
}
public function findSapCode(Request $request)
{
$data=ShiftPattern::select('code','id')->where('id',$request->id)->take(100)->get();
return response()->json($data);
}
查看:-
<div class="col-md-3">
<select class="shiftPatternID" name="inputShiftPatternID" id="inputShiftPatternID" required style="width: 100%">
<option value="" hidden disabled selected>Please Select</option>
@foreach($shiftpattern as $singleshiftpattern)
<option value="{{$singleshiftpattern->id}}">{{$singleshiftpattern->id}} - {{$singleshiftpattern->code}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-3">
<select class="sapCode" name="inputSapCode" id="inputSapCode" required style="width: 100%">
<option value="0" disabled="true" selected="true">Please Select</option>
</select>
</div>
</div>
脚本内部视图:-
$(document).ready(function(){
$(document).on('change','.shiftPatternID',function(){
var cat_id=$(this).val();
var div=$(this).parent().parent().parent();
var op=" ";
$.ajax({
type:'get',
url:'{!!URL::to('findSapCode')!!}',
data:{
'id':cat_id
},
success:function(data){
op+='<option value="0" selected disabled>Please Select</option>';
for(var i=0;i<data.length;i++){
op+='<option value="'+data[i].id+'">'+data[i].sapCode+'</option>';
}
div.find('.sapCode').html(" ");
div.find('.sapCode').append(op);
},
error:function(){
}
});
});
});
未定义的错误是由于从 object
访问了错误的密钥。您正在访问 sapCode
但它不存在于对象中,因此它抛出 undefined
。根据 ajax 响应应该是 code
而不是 sapCode
op+='<option value="'+data[i].id+'">'+data[i].code+'</option>';
如有错误请多多包涵。我的英语很基础。
模型 get() 函数将重新运行 Collection 个实例
控制器
public function findSapCode(Request $request)
{
return ShiftPattern::select('code','id')->where('id',$request->get(id))->take(100)->get()->toJSON();
}
您可以通过URL::to('findSapCode')查看合集内容
脚本内部视图:-
$(document).on('change','.shiftPatternID',function(){
var cat_id=$(this).val();
var div=$(this).parent().parent().parent();
var op=" ";
$.ajax({
type:'get',
url:'{!!URL::to('findSapCode')!!}',
data:{
'id':cat_id
},
success:function(data){
data.forEach(function (value, index) {
div.find('.sapCode').append('<option value="'+data.id+'">'+data.sapCode+'</option>');
});
},
error:function(){
}
});
});
使用 foreach() 函数访问每一行数据。