使用 AJAX 和 Laravel 5.8 的动态依赖选择选项

Posted

技术标签:

【中文标题】使用 AJAX 和 Laravel 5.8 的动态依赖选择选项【英文标题】:Dynamic dependent select option using AJAX and Laravel 5.8 【发布时间】:2019-12-18 14:02:07 【问题描述】:

我实际上是在尝试根据区域获取城市的动态相关选择选项,并且在我的控制器中,我正在返回一个字符串(使用 echo),但不幸的是,该字符串未在浏览器的选择选项(城市)中呈现.但我可以通过检查或在控制台上打印来看到它。

我的 jquery:

    <script >
    $(document).ready(function()

     $('.dynamic').change(function()
      if($(this).val() != '')
      
       var select = $(this).attr("id");
       var value = $(this).val();
       var dependent = $(this).data('dependent');
       var _token = $('input[name="_token"]').val();
       $.ajax(
        url:" route('dynamicdependent.fetch') ",
        method:"POST",
        data:select:select, value:value, _token:_token, dependent:dependent,
        success:function(result)
        
         $('#cityName').html(result);
         console.log(result);

             console.log(result);
        

       )
      
     );

     $('#RegionName').change(function()
      $('#cityName').val('');
     );

    );
    </script>

:我的控制器

class DynamicDependent extends Controller


    public function fetch(Request $request)
       
      $select = $request->get('select');
      $value = $request->get('value');
      $dependent = $request->get('dependent');

      $data = city::where($select,$value)->get();

     $output = '<option value="">Select '.ucfirst($dependent).'</option>';
     foreach($data as $row)
     
      $output .= '<option value="'.$row->$dependent.'">'.$row->$dependent.'</option>';
     
     echo $output;
    

:没有错误消息

这是实际输出的图片:

【问题讨论】:

【参考方案1】:

我怀疑响应可能不是那么好。

尝试返回正确的响应,而不是回应自己。

// other code in the controller ...

return response()->json($output);

如果没有帮助,请在浏览器/控制台中包含您得到的实际响应。

【讨论】:

谢谢。实际上我正在使用引导选择库,当我从城市的选择标签中删除这个类时,有一个名为 selectpicker 的类它工作正常 啊,我明白了。这种自定义选择的问题是,它们在创建时从真正的选择元素中获取数据,但不会观察它的变化。在这些情况下,您可以销毁并重新创建自定义 selectpicker,或者可能有一个专用方法将 selectpicker 与更改同步。【参考方案2】:

谢谢。实际上我正在使用引导选择库,当我从城市的选择标签中删除这个类时,有一个名为 selectpicker 的类,它工作正常

【讨论】:

如果是这个插件,这里有一个方法,你应该在更改选项时使用:developer.snapappointments.com/bootstrap-select/methods/…

以上是关于使用 AJAX 和 Laravel 5.8 的动态依赖选择选项的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 Laravel 5.8 Ajax 表单提交中的内部服务器错误

使用 Laravel 5.8 从动态表单更新数据

SSH 进入动态远程服务器并运行命令 - Laravel 5.8

带有 axios 和 vue 的 laravel 5.8 中的 CSRF

此路由不支持 GET 方法。支持的方法:POST。 laravel 5.8 阿贾克斯

如何在 JWT API - Laravel 5.8 上验证用户群?