bardia
6 سال پیش توسط bardia مطرح شد
2 پاسخ

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

@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>

ثبت پرسش جدید
Igo
@Igo 6 سال پیش آپدیت شد
0

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

  $.each(data, function (index, item) {
                                $('select[name="city"]').append('<option value="' + item.key + '">' + item.value+ '</option>');
                            });

bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
0

@Igo
دورس نشد


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام