前端到後台ThinkPHP開發整站(3)

來源:互聯網
上載者:User

標籤:推薦   class   時間   .post   成功   xtend   direct   一段   比較   

  繼續我的這個項目的第三晚的開發了,時間比較少,今晚寫的代碼不多,今晚仍然是造輪子寫一個公用的控制器和一個公用的JS。直接上代碼吧!

  以下是一個公用的控制器,後台控制器都繼承於它,建構函式中進行驗證目前使用者是否登入狀態和提供快擷取當前登入使用者的資料。

<?phpnamespace Admin\Controller;use Think\Controller;/** * 後台管理公用控制器 */class CommonController extends Controller{public function __construct(){parent::__construct();$this->_init();}/** * 初始化 */private function _init(){// 如果已經登入$isLogin=$this->isLogin();if(!$isLogin){//跳轉到登入頁面$this->redirect(‘/admin.php?c=login‘);}}/** * 擷取當前登入使用者資訊 */public function getLoginUser(){return session(‘adminUser‘);}/** * 判斷是否登入 */public function isLogin(){$user=$this->getLoginUser();return ($user && is_array($user));}/** * 更新資料狀態 */public function setStatus($data,$models){try{if($_POST){$id=$data[‘id‘];$status=$data[‘status‘];if(!$id){return jsonResult(0, ‘ID不存在‘);}$ret=D($models)->updateStatusById($id,$status);if($ret){return jsonResult(1, ‘操作成功‘);}else{return jsonResult(0, ‘操作失敗‘);}}return jsonResult(0,‘沒有提交的內容‘);}catch(Exception $ex){return jsonResult(0, $e->getMessage());}}/** * 資料排序 */public function listorder($model=‘‘){$listorder=$_POST[‘listorder‘];$jumpUrl=$_SERVER[‘HTTP_REFERER‘];$errors=array();$resultData=array(‘jump_url‘=>$jumpUrl);try{if($listorder){foreach($listorder as $id=>$v){$id=D($model)->updateListorderById($id,$v);if($id===FALSE){$errors[]=$id;}}if(array_count_values($errors)>0){$group=implode(‘,‘, $errors);return jsonResult(0, "排序失敗-{$group}", $data,$resultData);}return jsonResult(1, ‘排序成功‘, $resultData);}}catch(Exception $ex){return jsonResult(0, $ex->getMessage());}return jsonResult(0, ‘排序失敗‘, $resultData);}}?>

  以下一段JS,主要是做一些表單操作的方法。

var common = function(queryDom) {if(!queryDom){console.error(‘請傳入需要操作的DOM選擇字元‘);return;}function commonObj() {this.dom = ‘‘;}function todelete(url, data) {$.post(url,data,function(s) {if(s.status == 1) {return dialog.success(s.message, ‘‘);// 跳轉到相關頁面} else {return dialog.error(s.message);}}, "JSON");}/** * 提交form表單操作 */commonObj.prototype.add = function(formDom, func) {$(this.dom).click(function() {var data = $(formDom).serializeArray();postData = {};$(data).each(function(i) {postData[this.name] = this.value;});console.log(postData);// 將擷取到的資料post給伺服器url = SCOPE.save_url;jump_url = SCOPE.jump_url;$.post(url, postData, function(result) {if(result.status == 1) {//成功if(typeof(func) == ‘function‘) {func();} else {return dialog.success(result.message, jump_url);}} else if(result.status == 0) {// 失敗return dialog.error(result.message);}}, "JSON");});}/** * 編輯模組 */commonObj.prototype.click = function() {$(this.dom).on(‘click‘, function() {var id = $(this).attr(‘attr-id‘);var url = SCOPE.edit_url + ‘&id=‘ + id;window.location.href = url;});}/* * 刪除操作 */commonObj.prototype.delete = function() {$(this.dom).on(‘click‘, function() {var id = $(this).attr(‘attr-id‘);var a = $(this).attr("attr-a");var message = $(this).attr("attr-message");var url = SCOPE.set_status_url;data = {};data[‘id‘] = id;data[‘status‘] = -1;layer.open({type: 0,title: ‘是否提交?‘,btn: [‘yes‘, ‘no‘],icon: 3,closeBtn: 2,content: "是否確定" + message,scrollbar: true,yes: function() {// 執行相關跳轉todelete(url, data);},});});}/** * 排序操作 */commonObj.prototype.order = function() {$(this.dom).click(function() {// 擷取 listorder內容var data = $("#singcms-listorder").serializeArray();postData = {};$(data).each(function(i) {postData[this.name] = this.value;});console.log(data);var url = SCOPE.listorder_url;$.post(url, postData, function(result) {if(result.status == 1) {//成功return dialog.success(result.message, result[‘data‘][‘jump_url‘]);} else if(result.status == 0) {// 失敗return dialog.error(result.message, result[‘data‘][‘jump_url‘]);}}, "JSON");});}/** * 更改狀態 */commonObj.prototype.updateStatus = function() {$(this.dom).on(‘click‘, function() {var id = $(this).attr(‘attr-id‘);var status = $(this).attr("attr-status");var url = SCOPE.set_status_url;data = {};data[‘id‘] = id;data[‘status‘] = status;layer.open({type: 0,title: ‘是否提交?‘,btn: [‘yes‘, ‘no‘],icon: 3,closeBtn: 2,content: "是否確定更改狀態",scrollbar: true,yes: function() {// 執行相關跳轉todelete(url, data);},});});}commonObj.prototype.push = function() {$(this.dom).click(function() {var id = $("#select-push").val();if(id == 0) {return dialog.error("請選擇推薦位");}push = {};postData = {};$("input[name=‘pushcheck‘]:checked").each(function(i) {push[i] = $(this).val();});postData[‘push‘] = push;postData[‘position_id‘] = id;//console.log(postData);return;var url = SCOPE.push_url;$.post(url, postData, function(result) {if(result.status == 1) {// TODOreturn dialog.success(result.message, result[‘data‘][‘jump_url‘]);}if(result.status == 0) {// TODOreturn dialog.error(result.message);}}, "json");});}return new commonObj();}

  今晚就弄了那麼點,反正慢慢來,不會有人催我項目進度的,主要是自己能堅持把這個項目做完。代碼寫到這裡天色已晚,困了,都沒去運行下,肯定會有些BUG的了,等一個模組開發完再去調試代碼吧!

  源碼地址:https://github.com/YoZiLin/TP-CMS

前端到後台ThinkPHP開發整站(3)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.