91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel中blog項目之后臺多級分類列表創建及Ajax異步修改分類排序

發布時間:2021-09-09 17:05:33 來源:億速云 閱讀:199 作者:柒染 欄目:編程語言

小編給大家分享一下laravel中blog項目之后臺多級分類列表創建及Ajax異步修改分類排序,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、后臺文章分類頁多級分類列表

1)添加多級分類注意cate_pid和cate_id一樣就證明它在哪個分類下

2)添加個方法處理分類

public function getTree(){
}

3)在上面的方法里調下面的方法

$data = $this->getTree($categroy);
public function index(){
$categroy = CategroyModel::all();
$data = $this->getTree($categroy,'cate_name','cate_pid','cate_id');
return view('home/categroy/index')->with('data',$data);
}

4)下面打印一下看上面參數是否傳進來

public function getTree($data){
dd($data);
}

5)首先把cate_pid是0的給篩選出來,然后再次循環把cate_pid和cate_id相等的篩選出來,為了讓方法更加強壯,我們想到用傳參的方式,

public function getTree($data,'$file_pid=‘pid’,$file_id=‘id’,$pid=0){
     $arr = array();
   foreach($data as $key =>$value){
if($value->$file_pid==$pid){
$data[$key]["_cate_name"]=$data[$key]["cate_name"];
$arr[] = $data[$key];
foreach($data as $k=>$v{
                    if($value->$file_pid==$v->$file_id){
      //新定義個字段把分類的下級定義出來
$data[$k]["_cata_name"]='-->'.$data[$k]["cate_name"]
$arr[]=$data[$v];
}
       }
      }
   }

更好的優化代碼:

把控制器里的整理數據的過程放到模型中

public static function tree(){   //用的是靜態方法
$categroy =  CategroyModel::all();
return (new CategroyModel)->getTree($categroy,'cate_name','cate_pid','cate_id');
}
public function tree(){
$categroy = $this->all();
return $this->getTree($categroy,'cate_name','cate_pid','cate_id');
}
public function getTree($data,'$file_pid=‘pid’,$file_id=‘’,$pid=0){
$arr = array();
foreach($data as $key =>$value){
if($value->$file_pid==$pid){
$data[$key]["_cate_name"]=$data[$key]["cate_name"];
$arr[] = $data[$key];
foreach($data as $k=>$v{
if($value->$file_pid==$v->$file_id){
//新定義個字段把分類的下級定義出來
$data[$k]["_cata_name"]='-->'.$data[$k]["cate_name"]
$arr[]=$data[$v];
}
}
}
}

控制器里的修改:

public function index(){
// $data= CategroyModel::Tree();   不是靜態方法不能用靜態方法調用   調用靜態方法
$data =(new CategroyModel)->Tree();   調用不是靜態方法
return view('home/categroy/index')->with('data',$data);
}

二、后臺文章分類頁Ajax異步修改分類排序

1)看主模板里是否引入jquery

2)寫一下JS

$(function(){});

寫jquery的基本格式

$(function(){
alert();
});

3)要用JS發送異步

因為我要操作這個input表單時發送事件,

<input type="text" onchange="onchangeOrder()" value="{{$v->cate_order}}">  //加一個事件onchange,請求方法onchangeOrder方法

4)(2)是測試的,

function onangeOrder(){
alert();
}

5)接下來發送異步請求了

function onchangeOrder(){
$.post("",{});//第一個url,第二個參數,第三個是回調函數function($data){}回調函數里我們用$data接收
}

6)分配地址

function onchangeOrder(){
$.post("{{url('admin/cate/changeorder')}}",{},function($data){});
}

7)分配路由

Route::post('admin/changeorder','CategoryController@changeorder');

8)新建控制器CategoryController.php

public function changeorder(){
      echo 123;
   }

9)把token值傳給后臺

function onchangeOrder(){
$.post("{{url('admin/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){});
}

10)再傳幾個參數過去,第一個參數是_token參數,第二個參數是修改哪個參數的信息,第三個參數就是把這個分類信息改成多少

修改哪個條的信息

<input type="text" onchange="onchangeOrder({{$v->cate_id}})" value="{{$v->cate_order}}">

這個分類信息改成多少

<input type="text" onchange="onchangeOrder(this,{{$v->cate_id}})" value="{{$v->cate_order}}"> //能找到當前輸入的值到底多少

11)下面的接受參數,第一個就是對象,第二個就是cate_id

function onchangeOrder(obj,cate_id){
$.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){});
}

12)通過obj讀取咱們當前輸入的值到底是多少

那么咱們定義一個變量,cate_order 等于$()然后把obj傳進去,然后它的.val()

function onchangeOrder(obj,cate_id){
var cate_order=$(obj).val();
$.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){});
}

還有cate_id就是咱們傳過來 的參數就不用處理了

13)下面卻幾個參數處理一下

function onchangeOrder(obj,cate_id){
var cate_order=$(obj).val();
$.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}','cate_id':cate_id,'cate_order':cate_order},function($data){});
}

14)傳給controller后怎么接受

public function changeorder(){
//用input方法接受前臺傳過來的值
 $input= Input::all();
print_r( $input);
}

15)然后取數據庫對應cate_id數據,改變對應cate_order的值,然后跟新這條數據

public function changeorder(){
//用input方法接受前臺傳過來的值
$input= Input::all();
    $cate=CategroyModel::find($input['cate_id']);
      //然后改變order參數
   $cate->cate_order=$input['cate_order'];
    //更新數據庫
    $res = $cate->update();
}

16)更新時,給前臺一個提示,這是我們給一個$data[]傳給前臺

public function changeorder(){
//用input方法接受前臺傳過來的值
$input= Input::all();
$cate=CategroyModel::find($input['cate_id']);
//然后改變order參數
$cate->cate_order=$input['cate_order'];
//執行更新操作
$res=$cate->update();
 if($res){
        $data=[
            'status'=> 0,
            'msg'=>'更新成功!',
        ];
    }else{
        $data=[
            'status'=> 1,
            'msg'=>'更新失敗!',
        ];
    }
   return $data;   //別忘了返回值
}

17)獲取回調函數的值

function onchangeOrder(obj,cate_id){
var cate_order=$(obj).val();
$.post(
"{{url('home/cate/changeorder')}}",
{'_token':'{{csrf_token()}}','cate_id':cate_id,'cate_order':cate_order},
function(data){
alert(data.msg);
}
);
}

以上是“laravel中blog項目之后臺多級分類列表創建及Ajax異步修改分類排序”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通江县| 正阳县| 柘城县| 三门县| 青浦区| 武汉市| 乌拉特中旗| 曲阜市| 阜阳市| 调兵山市| 汉沽区| 同心县| 米脂县| 开平市| 汝南县| 亚东县| 英山县| 临汾市| 连州市| 承德县| 仙桃市| 庆城县| 高密市| 蒲城县| 潜山县| 郎溪县| 绥宁县| 阿克苏市| 长海县| 南安市| 兴化市| 泰安市| 门源| 冷水江市| 岗巴县| 金寨县| 旅游| 桐梓县| 班戈县| 桃江县| 襄垣县|