آفلاین
user-avatar

ارتباط لیست کامبو باکس به صورت وابسته با ایجکس

2 سال پیش
توسط bardia آپدیت شد
آفلاین
user-avatar
bardia ( 22746 تجربه )
2 سال پیش
تخصص : Golang/Laravel

@hesammousavi

سلام
من میخوام زمانی که از لیستی نام تخصص ها رو انتخاب کردم توی لیست بعد به صوررت ایجکس پزشک هاشو رو بیاد
این کد رو من تست کردم بیروون پروژه خودم اجرا شد
اما داخل پنل ادمینم اجرا نشد مشکل از کجاست
یعنی من یه تخصص رو انتخاب می کنم پزشک متناظرشو رو برام نمیاره
این کد کنترلر

public function myform(){
      $states = DB::table("specializtions")->pluck("name","id");

        return view('admin.schedules.add',compact('states'));
    }
    public function myformAjax($id)
   {
       $cities = DB::table("physicians")->where("specialization_id",$id)->pluck("name","id");
       return json_encode($cities);
   }

این کد قسمت ویو

<div class="form-group">
                        <label> گروه تخصصی</label>
                          <select dir="rtl" name="state" style="text-align: right;" class="js-example-placeholder-single js-states form-control custom" style="width: 100%;">
                            <option value="">--- انتخاب تخصص ---</option>
                            @foreach ($states as $key => $value)
                                <option value="{{ $key }}">{{ $value }}</option>
                            @endforeach
                        </select>
                      </div>
                      <div class="form-group">
                      <label> پزشک</label>
                      <select dir="rtl" name="city" style="text-align: right;" class="js-example-placeholder-single js-states form-control custom" style="width: 100%;">
                      </select>
                    </div>

و اینم کد قسمت ajaxی که توی ویو گذاشتم

<script type="text/javascript">
    $(document).ready(function() {
        $('select[name="state"]').on('change', function() {
            var stateID = $(this).val();
            if(stateID) {
                $.ajax({
                    url: '/myform/ajax/'+stateID,
                    type: "GET",
                    dataType: "json",
                    success:function(data) {
                        $('select[name="city"]').empty();
                        $.each(data, function(key, value) {
                            $('select[name="city"]').append('<option value="'+ key +'">'+ value +'</option>');
                        });
                    }
                });
            }else{
                $('select[name="city"]').empty();
            }
        });
    });
</script>
آفلاین
user-avatar
Igo ( 3869 تجربه )
2 سال پیش

سلام
احتمالا میدم که توی متد $.each مشکل داشته باشید
توی این متد آرگومان اول Index آیتم در ارایه رو بهتون میده و آرگومان دوم خود آیتم

  $.each(data, function (index, item) {
                                $('select[name="city"]').append('<option value="' + item.key + '">' + item.value+ '</option>');
                            });
آفلاین
user-avatar
bardia ( 22746 تجربه )
2 سال پیش
تخصص : Golang/Laravel

@Igo
دورس نشد

برای ارسال پاسخ باید وارد سایت شوید