javascript - 选择onChange Ajax从mysql数据库Laravel 5.4获取数据列表

标签 javascript jquery ajax laravel-5 laravel-5.4

我有 2 个选择输入字段。

首先选择包含静态数据的输入字段。

需要根据第一个输入字段选择的值填充第二个选择输入字段。

下面是我的代码

<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>

Controller

public function get_onchange_data(Request $request)
{
        if($id == 'abc')
        {
            $searches = Abc::select('field_name')->get();
            return response(view('/users/Def', compact('searches'))->render());
        }
}

我无法获取返回的ajax数据。

我收到此错误:

GET http://localhost:8000/users/abc?id=year&_=1496176229318 500 (Internal Server Error)

我认为我的入住条件有误。我正在考虑 $id 作为从 dataString 传递的值。

我不知道该怎么做。获取数据,与if条件进行比较,最后返回数据的数组结果。

编辑后的代码

$("#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'));
    }

最佳答案

这里有两/三个问题:

  1. 您尚未在方法的上下文中定义 $id。通过您的请求对象访问它 $request->input('id');
  2. 不要将数据作为字符串发送,而是作为对象发送 data: {id: id}
  3. 始终返回响应。如果该语句的计算结果为 false,则该请求将不会得到答复。

关于javascript - 选择onChange Ajax从mysql数据库Laravel 5.4获取数据列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44271389/

相关文章:

javascript - ajax.actionlink(){} 正在重新加载页面而不是调用 ajax

javascript - <br><br><br> 生成并仅在 Inspect Element 中显示

javascript - 访问json不起作用

javascript - firebase:获取ThenableReference的 key

javascript - 如何以编程方式将 JS 和 CSS 资源添加到 <h :head>

javascript - 将 jQuery 依赖项传递给 Angular js Controller

javascript - 在ajax错误上执行javascript函数

php - jQuery - 仅更改单击的元素,并非所有元素都具有相同的类

javascript - 从嵌套的 $.getJSON 返回值?

javascript - 使用ajax请求变量填充下拉列表