## 批量移动文章(用我的方式来完成之前框架未做好功能) View: 搜索 '批量移动' 发现代码是加了注释的,先把注释去掉: > \themes\admin_simpleboot3\portal\admin_article\index.html <button class="btn btn-primary btn-sm js-articles-move" type="button">批量移动</button> 同时需要修改底部的脚本。作者之前可能是想先获取旧的栏目ID然后通过方法替换成新的ID。以下是用我的方法来实现,直接请求批量更新成为新的栏目ID就好。 //首先是实现弹窗的功能: ids = ids.join(','); url = '{:url("AdminArticle/move")}?ids='+ ids ; art.dialog.open(url, { // art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=move&old_term_id={$term.term_id|default=0}&ids=" + ids, { title: "批量移动", width: "400px", close: function(){ reloadPage(window); } > \themes\admin_simpleboot3\portal\admin_article\move.html 新建move.html:页面选择分类以及IDS,然后将数据提交到moveSave()处理 <include file="public@header"/> </head> <body> <div class="wrap"> <form method="post" class="js-ajax-form" action="{:url('AdminArticle/moveSave')}"> <div style="width: 350px"> <label style="width: 350px">分类:</label> <select name="term_id" class="form-control" style="width: 280px;float: left;"> {$terms_tree} </select> <input type="hidden" name="ids" value="{$ids}"> <button class="btn btn-primary js-ajax-submit" type="submit" style="float: left;">移动</button> </div> </form> </div> <script src="__STATIC__/js/admin.js"></script> </body> </html> > \app\portal\controller\AdminArticleController.php 控制器实现方法: /** * 批量移动弹出的窗口 * @return [view] */ public function move() { $param = $this->request->param(); $categoryId = $this->request->param('category', 0, 'intval'); //获取栏目 $portalCategoryModel = new PortalCategoryModel(); $categoryTree = $portalCategoryModel->adminCategoryTree($categoryId); $this->assign('terms_tree', $categoryTree); //获取IDS $ids = $this->request->param('ids'); $this->assign('ids', $ids); return $this->fetch(); } /** * 更新关系表的栏目ID * @return [json] */ public function moveSave(){ $term_id = $this->request->param('term_id'); $ids = $this->request->param('ids'); Db::name('portal_category_post')->where('post_id', 'in', $ids)->update(['category_id' => $term_id]); $this->success("移动成功!", ''); } 简单粗暴的实现功能,希望有大神指点,提升一下水平。谢谢观看!