首页 > 解决方案 > 使用 ajax 在 laravel 编辑表单的选定下拉列表中从数据库中调出数据

问题描述

我正在使用 Laravel 并使用 ajax 来制作下拉依赖项。但是,下拉列表不能显示引用数据库的选定数据。怎么做?它也应该使用ajax还是其他方式?

这是我的下拉部分的编辑表单代码:

<!-- dropdown using ajax -->
<div class="form-group">
    <label for="title">Pilih Produk :</label>
    <select name="id_produk" class="form-control" style="width:350px">
        <option value="">- Produk -</option>
        @foreach ($produks as $key => $value)
            <option value="{{ $key }}">{{ $value }}</option>
        @endforeach
    </select>
</div>
@if ($errors -> any())
    <div class="form-group {{ $errors -> has('id_item') ? 'has-error' : 'has-success' }}">
@else
    <div class="form-group">
@endif
        <label for="title">Pilih Item :</label>
        <select name="id_item" class="form-control" style="width:350px">
            <option value="">- Item -</option>
        </select>
        @if ($errors -> has('id_item'))
        <span class="help-block">{{ $errors -> first('id_item') }}</span>
        @endif
    </div>

<script src="{{ asset('http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js') }}"></script>
<script type="text/javascript">
$(document).ready(function() {
        $('select[name="id_produk"]').on('change', function() {
            var produkid = $(this).val();
            if(produkid) {
                $.ajax({
                    url: 'edit/ajax/'+produkid,
                    type: "GET",
                    dataType: "json",
                    success:function(data) {
                        $('select[name="id_item"]').empty();
                        $.each(data, function(key, value) {
                            $('select[name="id_item"]').append('<option value="'+ key +'">'+ value +'</option>');
                        });
                    }
                });
            }else{
                $('select[name="id_item"]').empty();
            }
        });
    });
</script>
<!-- end -->

这是我在编辑表单时显示的表单: 使用 ajax 编辑具有下拉依赖项的表单

标签: phpajaxlaravellaravel-5.6

解决方案


您需要在编辑页面上为选项中的选定值添加条件。

<select name="id_produk" class="form-control" style="width:350px">
    <option value="">- Produk -</option>
    @foreach ($produks as $key => $value)
        <option value="{{ $key }}" selected="{{$key == $editData->id_produk ? 'selelcted' : ''}}">{{ $value }}</option> // Here $editData is the collection by which you add the email and other option in the page
    @endforeach
</select>

推荐阅读