首页 > 解决方案 > 没有选择类别不显示子类别

问题描述

这是 create.blade.php 文件。在此也包含 css 和 js 文件.. Html 代码和 ajax 代码查看文件

@extends('layouts.app')

@section('content')
 <link rel="stylesheet" href="http://www.codermen.com/css/bootstrap.min.css">    
 <script src="http://www.codermen.com/js/jquery.js"></script>
<form enctype="multipart/form-data" method="post" action="{{route('post.store')}}" >
       @csrf
       <div class="form-group col-md-8">
                    Category<select name="category" id="category" class="form-control">
                                    <option>select</option>
                        @foreach($categories as $category)
                <option value="{{$category->id}}">{{$category->category}}</option>
                @endforeach
                            </select>
       </div>
       <div class="form-group col-md-8">
                    Category<select name="subcategory" id="subcategory" class="form-control">
                                    <option>select</option>
                        @foreach($subcategories as $subcategory)
                <option value="{{$subcategory->id}}">{{$subcategory->subcategory}}</option>
                @endforeach
                            </select>
       </div>
</form>

@endsection


 

这是创建类别和子类别的功能代码的控制器代码

public function create(Request $request){
    $categories = Category::all();
    $subcategories = DB::table('subcategories')
                        ->where('category_id', $request->category_id)
                        ->pluck('subcategory', 'id');
  return view('post.create', compact('categories', 'subcategories'));
}

这是路线

Route::get('/post/create', 'PostController@create')->name('post.create');

问题是如果我选择类别仍然没有与子类别相关的节目 这里显示输出

这是我的类别表

这是我的子类别表

标签: laravellaravel-5laravel-4eloquentlaravel-5.2

解决方案


jquery 附加代码看起来是正确的。我认为问题可能出在您的路由上。

你有

url:"{{url('create')}}?category_id="+categoryID,

作为通过 Laravel 方法调用的 GET 请求url()。如果您以url()在 web.php 中设置路由的方式使用此处可能会有所帮助,这将使用完整的 url 路径:

url:"{{url('post/create/')}}"+categoryID,

这让 url() 函数可以添加参数。但是,如果它是一个 GET 请求(并将 $category_id 添加到控制器方法),它也可能有助于考虑路由文件中的传入参数:

Route::get('post/create/{id}', 'PostController@create')

我可能会创建一个单独的函数来获取子类别 - 然后让您的 ajax 调用该函数并拉取子类别。干净一点。

但我认为您的问题可能出在路由上,也许上面的一些内容会对您有所帮助。


推荐阅读