小編給大家分享一下laravel中blog項(xiàng)目之后臺(tái)多級(jí)分類(lèi)列表創(chuàng)建及Ajax異步修改分類(lèi)排序,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)長(zhǎng)期為超過(guò)千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為固始企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,固始網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
一、后臺(tái)文章分類(lèi)頁(yè)多級(jí)分類(lèi)列表
1)添加多級(jí)分類(lèi)注意cate_pid和cate_id一樣就證明它在哪個(gè)分類(lèi)下
2)添加個(gè)方法處理分類(lèi)
public function getTree(){ }
3)在上面的方法里調(diào)下面的方法
$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)下面打印一下看上面參數(shù)是否傳進(jìn)來(lái)
public function getTree($data){ dd($data); }
5)首先把cate_pid是0的給篩選出來(lái),然后再次循環(huán)把cate_pid和cate_id相等的篩選出來(lái),為了讓方法更加強(qiáng)壯,我們想到用傳參的方式,
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){ //新定義個(gè)字段把分類(lèi)的下級(jí)定義出來(lái) $data[$k]["_cata_name"]='-->'.$data[$k]["cate_name"] $arr[]=$data[$v]; } } } }
更好的優(yōu)化代碼:
把控制器里的整理數(shù)據(jù)的過(guò)程放到模型中
public static function tree(){ //用的是靜態(tài)方法 $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){ //新定義個(gè)字段把分類(lèi)的下級(jí)定義出來(lái) $data[$k]["_cata_name"]='-->'.$data[$k]["cate_name"] $arr[]=$data[$v]; } } } }
控制器里的修改:
public function index(){ // $data= CategroyModel::Tree(); 不是靜態(tài)方法不能用靜態(tài)方法調(diào)用 調(diào)用靜態(tài)方法 $data =(new CategroyModel)->Tree(); 調(diào)用不是靜態(tài)方法 return view('home/categroy/index')->with('data',$data); }
二、后臺(tái)文章分類(lèi)頁(yè)Ajax異步修改分類(lèi)排序
1)看主模板里是否引入jquery
2)寫(xiě)一下JS
$(function(){});
寫(xiě)jquery的基本格式
$(function(){ alert(); });
3)要用JS發(fā)送異步
因?yàn)槲乙僮鬟@個(gè)input表單時(shí)發(fā)送事件,
<input type="text" onchange="onchangeOrder()" value="{{$v->cate_order}}"> //加一個(gè)事件onchange,請(qǐng)求方法onchangeOrder方法
4)(2)是測(cè)試的,
function onangeOrder(){ alert(); }
5)接下來(lái)發(fā)送異步請(qǐng)求了
function onchangeOrder(){ $.post("",{});//第一個(gè)url,第二個(gè)參數(shù),第三個(gè)是回調(diào)函數(shù)function($data){}回調(diào)函數(shù)里我們用$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值傳給后臺(tái)
function onchangeOrder(){ $.post("{{url('admin/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){}); }
10)再傳幾個(gè)參數(shù)過(guò)去,第一個(gè)參數(shù)是_token參數(shù),第二個(gè)參數(shù)是修改哪個(gè)參數(shù)的信息,第三個(gè)參數(shù)就是把這個(gè)分類(lèi)信息改成多少
修改哪個(gè)條的信息
<input type="text" onchange="onchangeOrder({{$v->cate_id}})" value="{{$v->cate_order}}">
這個(gè)分類(lèi)信息改成多少
<input type="text" onchange="onchangeOrder(this,{{$v->cate_id}})" value="{{$v->cate_order}}"> //能找到當(dāng)前輸入的值到底多少
11)下面的接受參數(shù),第一個(gè)就是對(duì)象,第二個(gè)就是cate_id
function onchangeOrder(obj,cate_id){ $.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){}); }
12)通過(guò)obj讀取咱們當(dāng)前輸入的值到底是多少
那么咱們定義一個(gè)變量,cate_order 等于$()然后把obj傳進(jìn)去,然后它的.val()
function onchangeOrder(obj,cate_id){ var cate_order=$(obj).val(); $.post("{{url('home/cate/changeorder')}}",{'_token':'{{csrf_token()}}'},function($data){}); }
還有cate_id就是咱們傳過(guò)來(lái) 的參數(shù)就不用處理了
13)下面卻幾個(gè)參數(shù)處理一下
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方法接受前臺(tái)傳過(guò)來(lái)的值 $input= Input::all(); print_r( $input); }
15)然后取數(shù)據(jù)庫(kù)對(duì)應(yīng)cate_id數(shù)據(jù),改變對(duì)應(yīng)cate_order的值,然后跟新這條數(shù)據(jù)
public function changeorder(){ //用input方法接受前臺(tái)傳過(guò)來(lái)的值 $input= Input::all(); $cate=CategroyModel::find($input['cate_id']); //然后改變order參數(shù) $cate->cate_order=$input['cate_order']; //更新數(shù)據(jù)庫(kù) $res = $cate->update(); }
16)更新時(shí),給前臺(tái)一個(gè)提示,這是我們給一個(gè)$data[]傳給前臺(tái)
public function changeorder(){ //用input方法接受前臺(tái)傳過(guò)來(lái)的值 $input= Input::all(); $cate=CategroyModel::find($input['cate_id']); //然后改變order參數(shù) $cate->cate_order=$input['cate_order']; //執(zhí)行更新操作 $res=$cate->update(); if($res){ $data=[ 'status'=> 0, 'msg'=>'更新成功!', ]; }else{ $data=[ 'status'=> 1, 'msg'=>'更新失敗!', ]; } return $data; //別忘了返回值 }
17)獲取回調(diào)函數(shù)的值
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); } ); }
以上是“l(fā)aravel中blog項(xiàng)目之后臺(tái)多級(jí)分類(lèi)列表創(chuàng)建及Ajax異步修改分類(lèi)排序”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁(yè)標(biāo)題:laravel中blog項(xiàng)目之后臺(tái)多級(jí)分類(lèi)列表創(chuàng)建及Ajax異步修改分類(lèi)排序
網(wǎng)站網(wǎng)址:http://vcdvsql.cn/article44/pejshe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷(xiāo)推廣、手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)