簡體   English   中英

在laravel中編輯期間保持選擇選項的值

[英]Keep select option value selected during edit in laravel

我試圖在編輯過程中保持選擇選項的值。 在那里,我將javascript用於動態依賴下拉列表。 但是現在我面臨一個問題,即在編輯過程中保持選項值處於選中狀態。 有人可以幫我解決這個問題嗎? edit.blade.php

<form class="form-material form-horizontal" action="{{ route('admin.commercial.orders.update', $order->id) }}" method="POST">
      @method('PUT')    
      @csrf
   <div class="row">
      <div class="col-md-6">
           <div class="form-group">
              <label class="col-md-12" for="name">Buyer Name: </label>
              <div class="col-md-12">
                 <select class="form-control select2" name="name" id="buyerName">
                     <option value="">Select Buyer</option>
                 </select>
                  @if ($errors->has('name'))
                     <small class="error">{{ $errors->first('name') }}</small>
                  @endif
              </div>
          </div>
      </div>
      <div class="col-md-6">
           <div class="form-group">
             <label class="col-md-12" for="job_name">Job Name/Title: </label>
             <div class="col-md-12">
                  <select class="form-control select2" name="job_name" id="jobName">
                      <option value="">Select Job</option>
                  </select>

                   @if ($errors->has('job_name'))
                      <small class="error">{{ $errors->first('job_name') }}</small>
                   @endif
              </div>
        </div>

      </div>
    </div>
 </form>

和javascript的依賴下拉列表-

<script type="text/javascript">

   $(function () {
      $(".select2").select2();
   });


   /** Dependent Dropdowns**/
   $(function() {
       dynamicDropdown('/admin/commercial/get-buyers', '#buyerName');

       $('#buyerName').change(function() {
          let url = `/admin/commercial/get-buyer-jobs/${this.value}`;
          let target = '#jobName';
          dynamicDropdown(url, target);

        });

   });
   function dynamicDropdown(url, selector) {
      $.get(url, function (data) {
          let $select = $(selector);

          $select.find('option').not(':first').remove();

          let options = [];
          $.each(data, function(index, item) {
            options.push(`<option value="${item.id}">${item.name}</option>`);
          })

          $select.append(options);
      });
   }
</script>

我的edit function是-

public function edit($id)
{
    $order = BuyerOrder::find($id);

    return view('admin.marchendaising.commercials.orders.edit', compact('order'));
}

將此添加到您的javascript的底部;

$("#buyerName").val("{{old('name')}}");
$("#jobName").val("{{old('job_name')}}");`

您可以嘗試以下方法:

<select name="buyer">
  @foreach(['buyer1', 'buyer2', 'buyer3'] as $buyer)
    <option vlaue="{{ $buyer }}"{{ (old('buyer') == $buyer) ? ' selected' : '' }}>{{ $buyer }}</option>
  @endforeach
</select>

要么

<select name="buyer">
  @foreach(['buyer1', 'buyer2', 'buyer3'] as $buyer)
    <option vlaue="{{ $buyer }}"{{ ($order->buyer == $buyer) ? ' selected' : '' }}>{{ $buyer }}</option>
  @endforeach
</select>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM