如何发布动态填充的select选项的实际值,而不是整数位置值

时间:2018-02-21 14:06:08

标签: laravel

我有一个从数据库中的表动态填充的选择框。唯一的问题是当我发布表单而不是发布的值时,我会得到一个与表格中的位置有关的数字。

所以不是“伦敦”,而是张贴。 32正在发布。

当它在选项标签中硬编码时工作正常。

这是我的代码和执行动态工作的ajax

<div class="form-group row">
    <label for="town" class="col-md-3 col-form-label text-md-right">town</label>
    <div class="col-md-9">
        <select class="town form-control" style="width:500px;" name="town">
        </select>
        @if ($errors->has('town'))
            <span class="invalid-feedback">
                <strong>{{ $errors->first('town') }}</strong>
            </span>
        @endif
    </div>
</div>

<!-- Script to Dynmaically autocomplete towns using typeahead => https://itsolutionstuff.com/post/laravel-5-dynamic-autocomplete-search-using-select2-js-ajax-part-2example.html-->
<script type="text/javascript">
    $('.town').select2({
      placeholder: 'Select an item',
      ajax: {
        url: '/townsearch',
        dataType: 'json',
        delay: 250,
        processResults: function (data) {
          return {
            results:  $.map(data, function (item) {
                  return {
                      text: item.name,
                      id: item.id
                  }
              })
          };
        },
        cache: true
      }
    });
</script>

1 个答案:

答案 0 :(得分:1)

更改此部分以使用名称而不是id:

results: $.map(data, function (item) {
  return {
    text: item.name,
    id: item.name // set the name here 
  }
})