Select onChange Ajax 从 mysql 数据库中获取数据列表 Laravel 5.4
Select onChange Ajax get list of data from mysql database Laravel 5.4
我有 2 个 select 输入字段。
第一个 select 输入字段包含静态数据。
第二个 select 输入字段需要根据第一个输入字段 selected 值填充。
下面是我的代码
<select id="filter_type" name="filter_type" class="selectpicker form-control" style="width:30%;">
<option value>Select Filter Type..</option>
<option value="abc">Abc</option>
<option value="def">Def</option>
<option value="ghi">Ghi</option>
<option value="jkl">Jkl</option>
</select>
<select id="search" name="search" class="selectpicker form-control" style="width:70%;" disabled="disabled">
<option value>Select Filter type first..</option>
</select>
Javascript
<script type="text/javascript">
$(document).ready(function()
{
$("#filter_type").change(function()
{
var id=$(this).val();
console.log(id);
var dataString = 'id='+ id;
console.log(dataString);
$.ajax
({
type: "GET",
url: "{{url('/users/abc')}}",
data: dataString,
cache: false,
success: function(data)
{
console.log(data); // I get error and success function does not execute
}
});
});
});
</script>
控制器
public function get_onchange_data(Request $request)
{
if($id == 'abc')
{
$searches = Abc::select('field_name')->get();
return response(view('/users/Def', compact('searches'))->render());
}
}
我无法获取 returned ajax 数据。
我收到这个错误:
GET http://localhost:8000/users/abc?id=year&_=1496176229318 500 (Internal Server Error)
我认为我的入住条件有误。我正在考虑将 $id 作为从 dataString 传递的值。
我不知道该怎么做。获取数据,与if条件比较,最后得到数据的return数组结果
已编辑代码
$("#filter_type").change(function()
{
var id=$(this).val();
console.log("1:"+id);
var dataString = '{id:'+ id+'}';
console.log("2:"+dataString);
$.ajax
({
type: "GET",
url: "{{url('/users/abc')}}",
data: dataString,
cache: false,
success: function(data)
{
console.log("3:"+data);
}
});
});
public function get_search_data(Request $request)
{
return response($request->input('id'));
}
Two/Three 问题在这里:
- 您尚未在方法的上下文中定义
$id
。通过您的请求对象访问它 $request->input('id');
- 不要将数据作为字符串发送,而是作为对象发送
data: {id: id}
- 始终return 回复。如果语句评估为假,请求将不会得到答复。
我有 2 个 select 输入字段。
第一个 select 输入字段包含静态数据。
第二个 select 输入字段需要根据第一个输入字段 selected 值填充。
下面是我的代码
<select id="filter_type" name="filter_type" class="selectpicker form-control" style="width:30%;">
<option value>Select Filter Type..</option>
<option value="abc">Abc</option>
<option value="def">Def</option>
<option value="ghi">Ghi</option>
<option value="jkl">Jkl</option>
</select>
<select id="search" name="search" class="selectpicker form-control" style="width:70%;" disabled="disabled">
<option value>Select Filter type first..</option>
</select>
Javascript
<script type="text/javascript">
$(document).ready(function()
{
$("#filter_type").change(function()
{
var id=$(this).val();
console.log(id);
var dataString = 'id='+ id;
console.log(dataString);
$.ajax
({
type: "GET",
url: "{{url('/users/abc')}}",
data: dataString,
cache: false,
success: function(data)
{
console.log(data); // I get error and success function does not execute
}
});
});
});
</script>
控制器
public function get_onchange_data(Request $request)
{
if($id == 'abc')
{
$searches = Abc::select('field_name')->get();
return response(view('/users/Def', compact('searches'))->render());
}
}
我无法获取 returned ajax 数据。
我收到这个错误:
GET http://localhost:8000/users/abc?id=year&_=1496176229318 500 (Internal Server Error)
我认为我的入住条件有误。我正在考虑将 $id 作为从 dataString 传递的值。
我不知道该怎么做。获取数据,与if条件比较,最后得到数据的return数组结果
已编辑代码
$("#filter_type").change(function()
{
var id=$(this).val();
console.log("1:"+id);
var dataString = '{id:'+ id+'}';
console.log("2:"+dataString);
$.ajax
({
type: "GET",
url: "{{url('/users/abc')}}",
data: dataString,
cache: false,
success: function(data)
{
console.log("3:"+data);
}
});
});
public function get_search_data(Request $request)
{
return response($request->input('id'));
}
Two/Three 问题在这里:
- 您尚未在方法的上下文中定义
$id
。通过您的请求对象访问它$request->input('id');
- 不要将数据作为字符串发送,而是作为对象发送
data: {id: id}
- 始终return 回复。如果语句评估为假,请求将不会得到答复。