php - Laravel 中显示类别、子类别和子子类别时出错

标签 php mysql laravel laravel-5.6 laravel-5.7

我的数据库中有 3 个表:“类别”、“子类别”和“子子类别”,我想显示带有显示类别名称的属性,如果产品位于子类别下,则应显示子类别名称。请让我知道如何解决这个问题。

这是我的propertcontroller.php:

$cat = Category::where('slug',$cat)->get(['id','category_name']);
$subcatid = Subcategory::where('slug',$subcat)->get(['id']);
$subsubcatid = Subsubcategory::where('slug',$subsubcat)->get(['id']);

这是我的观点代码:

<span class="tag pull-right">{{$cat}}</span>

最佳答案

定义路线

Route::get('dropdownlist','Propertcontroller@index');
Route::get('get-subcat-list','Propertcontroller@getSubcatList');
Route::get('get-subsubcat-list','Propertcontroller@getSubsubcatList');

属性 Controller

public function index()
{
    $categories= DB::table("categories")->pluck("name","categories_id");
    return view('index',compact('categories'));
}

public function getSubcatList(Request $request)
{
    $subcategories= DB::table("subcategories")
    ->where("categories_id",$request->categories_id)
    ->pluck("name","subcategories_id");
    return response()->json($subcategories);
}

public function getSubsubcatList(Request $request)
{
    $subsubcat= DB::table("subsubcat")
    ->where("subcategories",$request->subcategories)
    ->pluck("name","subcategories_id");
    return response()->json($subsubcat);
}

你的索引

<select id="categories" name="categories_id" >
    <option value="" selected disabled>Select</option>
    @foreach($categories as $key => $category)
    <option value="{{$key}}"> {{$category}}</option>
    @endforeach
</select>

<select name="subcategories" id="subcategories"></select>
<select name="subsubcat" id="subsubcat"></select>

<script type="text/javascript">
    $('#categories').change(function(){
    var categoryID = $(this).val();    
    if(categoryID){
        $.ajax({
           type:"GET",
           url:"{{url('get-subcategories-list')}}?categories_id="+categoryID,
           success:function(res){               
            if(res){
                $("#subcategories").empty();
                $("#subcategories").append('<option>Select</option>');
                $.each(res,function(key,value){
                    $("#subcategories").append('<option value="'+key+'">'+value+'</option>');
                });

            }else{
               $("#subcategories").empty();
            }
           }
        });
    }else{
        $("#subcategories").empty();
        $("#subsubcat").empty();
    }      
   });
    $('#subcategories').on('change',function(){
    var subcatID = $(this).val();    
    if(subcatID){
        $.ajax({
           type:"GET",
           url:"{{url('get-subsubcat-list')}}?subcat_id="+subcatID,
           success:function(res){               
            if(res){
                $("#subsubcat").empty();
                $.each(res,function(key,value){
                    $("#subsubcat").append('<option value="'+key+'">'+value+'</option>');
                });

            }else{
               $("#subsubcat").empty();
            }
           }
        });
    }else{
        $("#subsubcat").empty();
    }

   });
</script>

尚未测试,但也许会对您有所帮助。

关于php - Laravel 中显示类别、子类别和子子类别时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53893684/

相关文章:

php - 如何使用 group by 获取另一个表 codeigniter 中字段的计数?

php - 删除某些值时如何排列键?

c# - 无法从应用程序配置读取连接字符串

mysql - 无法在 mysql 中的单个查询中更新和选择

php - 如何更新字段以将值推送到 Laravel 中的现有值

php - JavaScript encodeURIComponent 与 PHP urlencode

php - Doctrine 2.1 - 获取实体限制

mysql - Rails - 如何向模型添加时间戳?

sql - 在子查询中使用 DISTINCT 时如何重写子查询以使用连接?

php - Laravel 模型默认值相对时间 now() + 24h