【问题标题】:laravel dropdown ajax with multiple options具有多个选项的laravel下拉ajax
【发布时间】:2019-02-10 23:44:32
【问题描述】:

我有一个问题很久了,我还没有找到解决方案。我有 4 个表,分别是公司、产品、事件和组,每个表都有类别。 我正在创建一个具有 2 个下拉列表和一个搜索文本字段的多搜索表单。第一个下拉列表对于每个表都有不同的选项值,以搜索 4 个不同的表,我希望每个选项/表都可以选择并显示在第二个下拉列表的选项/类别中。 我现在无法理解 ajax,我需要有人帮助。

我的表格是:

<form action="{{route('searchresults')}}" method="post">
      {{ csrf_field() }}
      <div class="form-group">
        <div class="col-xs-3" style="padding-left:0px !important;padding-right:0px !important;">
          <select class="form-control input-lg" id="country" name="type">
            <option value="">-Type-</option>
            <option value="companies">-{{__('header.companies')}}-</option>
            <option value="products">-{{__('header.products')}}-</option>
            <option value="groups">-{{__('header.groups')}}-</option>
            <option value="events">-{{__('header.events')}}-</option>
          </select>
        </div>
        <div class="col-xs-3" style="padding-left:0px !important;padding-right:0px !important;">
          <select class="form-control input-lg" id="category" name="category">
            <option value="">-Category-</option>          </select>
        </div>
        <div class="col-xs-4" style="padding-left:0px !important;padding-right:0px !important;">
          <input type="text" name="query" class="form-control input-lg" id="" placeholder="Search what are you looking for"
            required>
        </div>
        <div class="col-xs-2" style="padding:0px 0px !important">
          <button type="submit" class="btn btn-default btn-block input-lg">
            <span class="text-center"><i class="fa fa-2x fa-search"></i></span>
          </button>
        </div>
      </div>
    </form>

ajax部分是:

<script type="text/javascript">
   $(document).ready(function(){
     $.ajaxSetup({
      headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
  });
     $('#type').change(function(){
       var type = $('#type').val();
       console.log(type);
       $.ajax({
         url: "{{route('dependent')}}",
         method: 'post',
         data:'',
       });
     });
   });

【问题讨论】:

  • 你需要为你选择的每种类型打印???
  • 是的。我做了一个console.log,数据在那里,但在下拉列表中显示[object Object]

标签: php ajax laravel forms drop-down-menu


【解决方案1】:

您可以像这样填充类别下拉列表 -

$.ajax({
     url: "{{route('dependent')}}",
     method: 'post',
     data:{'type': type},
     success : function(data) {              
                $.each(data, function(key, value) {   
                   $('#category')
                      .append($("<option></option>")
                         .attr("value",key)
                         .text(value)); 
               });
            }
   });

根据您的data,您需要以不同的方式循环它。

【讨论】:

  • 我复制粘贴到我的 ajax 调用中,在第二个下拉列表中,选项列表是 [object Object]。为什么会这样?我做了一些搜索,但没有找到对我有用的东西
  • 感谢您的回答,我稍微解决了这个问题,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 2012-02-21
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 2022-10-18
  • 1970-01-01
相关资源
最近更新 更多