Php 使用Ajax Autocomplete在select2上选择的选项

Php 使用Ajax Autocomplete在select2上选择的选项,php,ajax,laravel,jquery-select2,laravel-blade,Php,Ajax,Laravel,Jquery Select2,Laravel Blade,我正在尝试使用Select2和Ajax autocomplete以及Laravel和Blade在选择框中选择一个值。我只有在编辑模式下(当我已经在DB上有一个值时)才有问题,并且在插入模式下它不会出现问题。 这里是我的html代码,其中select为空: <select class="form-control" id="city-name" name="city" style="width: 100%"> {{ isset($indirizzi->city_id) ?

我正在尝试使用Select2和Ajax autocomplete以及Laravel和Blade在选择框中选择一个值。我只有在编辑模式下(当我已经在DB上有一个值时)才有问题,并且在插入模式下它不会出现问题。 这里是我的html代码,其中select为空:

<select class="form-control" id="city-name" name="city" style="width: 100%">
    {{ isset($indirizzi->city_id) ? "<option value=\"". $indirizzi->city->id ."\" selected>".$indirizzi->city->name."</option>" : "" }}
</select>

如默认值()的文档所示,您需要删除额外的代码:

@if(isset($indirizzi)
  ...
@endif
并将您的选择替换为:

<select class="form-control" id="city-name" name="city" style="width: 100%">
@if($indirizzi)
   <option value="{{ $indirizzi->city_id }}" selected="selected"> {{ $indirizzi->city->name }}</option>
@endif
</select>

@如果($indirizzi)
{{$indirizzi->city->name}
@恩迪夫

您是否收到任何Javascript错误?你能添加你的
路线(“ajaxFindCity”)
的代码吗?如果我加载页面时没有从DB获得旧值(因此我必须第一次选择城市),Select2会工作。我添加了你在我的问题中问我的函数的代码。谢谢你的代码-现在如果你已经有了
select2/select2
,你就不需要添加JS的选项,这样你就可以删除你的
@if(isset($indirizzi))
条件。我会提交一个答案,只是为了让我的代码更清晰谢谢!我从脚本中删除了多余的代码,并按照您的指示更改了选择。当我加载页面时,我可以在选择框中看到名称,但它会立即被空值覆盖。但是如果我查看源代码,我会发现:
Catania
我怀疑
cache:true
是我需要检查它的地方的问题?只需从javascript中删除行
cache:true
,然后再试一次,不幸的是没有任何更改
@if(isset($indirizzi)
  ...
@endif
<select class="form-control" id="city-name" name="city" style="width: 100%">
@if($indirizzi)
   <option value="{{ $indirizzi->city_id }}" selected="selected"> {{ $indirizzi->city->name }}</option>
@endif
</select>