при выборе категории не показывать подкатегорию - PullRequest
2 голосов
/ 20 января 2020

Это код файла контроллера

 public function call_pageAjax($id)
{
  $subcat = DB::table("sub_categories")->where("cat_id",$id)->pluck("sub_cat_nm","id");
  return json_encode($subcat);
//  return view('purchase.supplier.add_supplier',compact('subcat'));
}

Это файл javascript

          <script type="text/javascript">
           $(document).ready(function() {
                $('select[name="category"]').on('change', function() {
                    var catID = $(this).val();
                    if(catId) {
                        $.ajax({
                            url: '/purchase/supplier/add_supplier/ajax/'+ catID,
                            type: "GET",
                            dataType: "json",
                            success:function(data) {

                                
                                $('select[name="subcategory"]').empty();
                                $.each(data, function(key, value) {
                                    $('select[name="subcategory"]').append('<option value="'+ key +'">'+ value +'</option>');
                                    console.log(data);
                                });


                            }
                        });
                    }else{
                        $('select[name="subcategory"]').empty();
                    }
                });
            }); 
          
        </script>
This is view file.

 <div class="form-group row">
                        <label class="col-sm-2 col-form-label" style="text-align-last: right;">Category Name:</label>
                        <div class="col-sm-6">
                            <select class="form-control" id="category" name="category">
                                <option value=" ">----select Category----</option>
                                @foreach ($category as $key => $value)
                                    <option value="{{ $key }}">{{ $value }}</option>
                                @endforeach
                            </select>

                        </div>
                    </div>              
                    
                    <div class="form-group row">
                        <label class="col-sm-2 col-form-label" style="text-align-last: right;">Sub Category Name:</label>
                        <div class="col-sm-6">
                           <select class="form-control" id="subcategory" name="subcategory">
                            
                           </select> 
                        </div>
                    </div>

Я пытаюсь получить подкатегорию, когда нажимаю категорию на странице, но не отображаю подкатегорию. Подкатегория отображается в API, но не отображается на странице ...

enter image description here

1 Ответ

1 голос
/ 20 января 2020

Вы можете использовать

//...
success: function(data){

     //Log the data to the console so that
     //you can get a better view of what the script is returning.
     console.log(data);
     $('#subcategory').empty();
     $.each(data, function(key, value){
           //Use the Option() constructor to create a new HTMLOptionElement.
           var option = new Option(key, value);
           //Convert the HTMLOptionElement into a JQuery object that can be used with the append method.
           $(option).html(value);
           //Append the option to our Select element.
           $('#subcategory').append(option);
     });

}
...