日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

项目后台的最新认识和对MVC封装性、可维护性的更深刻认识!

發(fā)布時間:2025/3/15 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目后台的最新认识和对MVC封装性、可维护性的更深刻认识! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這周的項目讓我認(rèn)識到只有通過大腦的思考才能將冗雜的代碼進(jìn)行封裝后變得更加簡潔,并且讓我們更簡單的去進(jìn)行后期維護(hù),這就是我所追求的方向,有自己的大腦有自己的封裝,有自己的更強大的可維護(hù)性!

下面是我對本次我獨自完成后臺的流程講解(附代碼!):

地址欄輸入?admin.php?MVC?獲取APP_NAME==admin/?進(jìn)入adminController調(diào)用adminAction

$this?->smarty?->display('logon.tpl');經(jīng)過調(diào)用smarty?display方法?顯示登陸界面;

?<form?method="post"?id="login_form"?action="admin.php?c=admin&a=validate"?onSubmit="return?chkinput(this)">表單提交指向參數(shù)?adminvalidateAction驗證登陸<input?type="hidden"?name="action"?value="login"?/>創(chuàng)建隱藏域,用于驗證是否非法操作;

驗證函數(shù)接收用戶名密碼?并調(diào)用adminModel模型進(jìn)行接收返回值進(jìn)行驗證,驗證失敗返回圓截面,驗證成功后?header("location:admin.php?c=admin&a=show");

調(diào)用showAction利用隱藏域傳的action值判斷是否非法操作?,合法操作后調(diào)用smartiadminname賦值并調(diào)用display顯示admin.tpl進(jìn)入管理界面;

模板自動加載<body??οnlοad="viewpage(1,'管理菜品')">

function?viewpage(page,val){

????if(val=='管理菜品'){

????document.getElementById('tables').innerHTML='</br><th>ID</th><th>菜名</th><th>價格</th><th>介紹</th><th>剩余數(shù)量</th><th>操作</th>';

var?url?='admin.php?c=admin&a=menuProcess&b=caipin';

}else?if(val=='管理訂單'){

???document.getElementById('tables').innerHTML='</br><th>ID</th><th>菜名</th><th>數(shù)量</th><th>單價</th><th>購買用戶</th><th>總價</th><th>是否發(fā)貨</th><th>操作</th>';

var?url?='admin.php?c=admin&a=menuProcess&b=dingdan';

}else?if(val=='管理用戶'){

???document.getElementById('tables').innerHTML='</br><th>ID</th><th>用戶名</th><th>密碼</th><th>郵箱</th><th>是否凍結(jié)</th><th>操作</th>';

var?url?='admin.php?c=admin&a=menuProcess&b=yonghu';

}

else?if(val=='管理留言'){

???document.getElementById('tables').innerHTML='</br><th>ID</th><th>留言內(nèi)容</th><th>操作</th>';

var?url?='admin.php?c=admin&a=menuProcess&b=liuyan';

}

?????var?xhr;

if(window.ActiveXObject){

??????????????????xhr?=?new?ActiveXObject('Microsoft.XMLHTTP');

?????????}else?if(window.XMLHttpRequest){

??????????????????xhr?=new?XMLHttpRequest();

?????????}

???xhr.open('POST',url,true);

???xhr.onreadystatechange?=?callback;

???????xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

???xhr.send('page='+page+'&val='+val);

???function?callback(){

???????if(xhr.readyState==4){

???????if(xhr.status==200){

??????//alert('heihei');

??????var?json?=?eval('('+xhr.responseText+')');

??var?result?=?eval('('+json[1]+')');

??document.getElementById('item').innerHTML?=?json[0];

??var?jsonText?=?JSON.stringify(result[0]);

??var?num=0;

??for(var?i=0;i<jsonText.length;i++){

????if(jsonText[i]==":"){

??num++;

}?

??}

?var?tdnum=num/2;

?document.getElementById('h4').innerHTML='????'+val;

?for(var?i=0;i<result.length;i++){

????var?tradd?=?document.createElement('tr');

?????var?trs?=?document.createElement('tr');

?var?len?=?result;

?????for(var?j=0;j<tdnum;j++){

????var?tdadd?=?document.createElement('td')

var?tds?=?document.createElement('td');

tds.align='center';

tds.innerHTML?=?result[i][j];

var?tdid?=?result[i].id;

var?trsid?=trs.id?=?"tr"+tdid;

var?tdsid?=tds.id?=?trsid+"td"+j;

?var?add?=?"'add'";

?var?update?=?"'update'";

?var?delet?=?"'delet'";

?var?fahuo?=?"'fahuo'";

?var?freeze?=?"'freeze'";

?var?unfreeze?=?"'unfreeze'";

?var?shan?=?"'shan'";

var?tdcao?=?document.createElement('td');

if(val=='管理菜品'){

???tdcao.innerHTML?=?'<span?style="?font-weight:bold;?background-color:#228b22;border:1px?solid;"?class="answer"?οnmοuseοver="point(this)"?onClick="menu('+add+','+tdid+')">添加</span><span?style="?font-weight:bold;?background-color:#0072bb;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+update+','+tdid+')">修改</span><span?style="?font-weight:bold;?background-color:#cd4900;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+delet+','+tdid+')">刪除</span>';

}else?if(val=='管理訂單'){

???if(result[i].fahuo=='y'){tdcao.innerHTML?=?'<span?style="?font-color:red;?background-color:#cccccc;border:1px?solid;"???class="answer"?)">已發(fā)貨</span>';}else{

???tdcao.innerHTML?=?'<span?id="fahuo"?style="?font-weight:bold;?background-color:#0072bb;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+fahuo+','+tdid+')">發(fā)貨</span>';}

}else?if(val=='管理用戶'){

???if(result[i].freez=='y'){tdcao.innerHTML?=?'<span?style="?font-weight:bold;?background-color:#cd4900;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+unfreeze+','+tdid+')">解凍</span>';}else{

???tdcao.innerHTML?=?'<span??style="?font-weight:bold;?background-color:#0072bb;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+freeze+','+tdid+')">凍結(jié)</span>';}

}else?if(val=='管理留言'){

???tdcao.innerHTML?=?'<span?style="?font-weight:bold;?background-color:#cd4900;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+shan+','+tdid+')">刪除</span>';

}

document.getElementById('tables').appendChild(tradd);

document.getElementById('tables').appendChild(trs);

????trs.appendChild(tds);

tradd.appendChild(tdadd);

}

???trs.appendChild(tdcao);

??}

???}

???}

???}

?????}

調(diào)用ajax返回分頁值提交頁面為?public?function?menuProcessAction(){

?????if($_SESSION['action']=='login'){

?????????$menu?=?$_REQUEST['b'];

?????????$val?=?"'".$_REQUEST['val']."'";

?????$page=$_REQUEST['page'];

?$adminModel?=?new?adminModel('localhost','root','root','dingcan');

?$pagesize?=8;

?$talfun?=?$menu.'Total';

?$pagefun?=?$menu.'Page';

?if($menu=='caipin'){

????$dbtable?=?'caipu';

?}else?if($menu=='dingdan'){

????$dbtable?=?'dingdan';

?}else?if($menu=='yonghu'){

????$dbtable?=?'user';

?}else?if($menu=='liuyan'){

????$dbtable?=?'liuyan';

?}

?$total_rows?=?$adminModel?->Total($dbtable);

?$pages?=?ceil($total_rows/$pagesize);

?$offset?=?$pagesize*($page-1);

?$first?=?1;

?$prev?=?$page-1;

?if($page==1){

????$prev=$page;

?}else{

????$prev?=$page-1;

?}

?$next?=$page+1;

?if($next<$pages){

????$next?=$page+1;

?}else{

????$next=$pages;

?}

?????$last?=??$pages;

?

?$str?=?'</br></br><span><FONT?color="red">'.?$page.'/'.$pages.'頁?|?'.$total_rows.'</FONT></span><span??οnmοuseοver="point(this)"?οnclick="viewpage('.$first.','.$val.')">首頁</span>?

<span??οnmοuseοver="point(this)"?οnclick="viewpage('.$prev.','.$val.')">上頁</span>

<span??οnmοuseοver="point(this)"?οnclick="viewpage('.$next.','.$val.')">下頁</span>

<span?οnmοuseοver="point(this)"??οnclick="viewpage('.$last.','.$val.')">尾頁</span>';

?$pageInfo?=?$adminModel?->Page($dbtable,$offset,$pagesize);

?$return?=array();

?$return[0]?=?$str;

?$return[1]?=??json_encode($pageInfo);

?echo?json_encode($return);

????}else{

???echo?"非法操作!<script>alert('非法操作,請登錄!');location.assign('admin.php')

;</script>";

}

?}

}<?php

class?adminModel?extends?baseModel{

public?function?validateAdmin($name){

?????$sql=mysql_query("select?*?from?admin?where?name='".$name."'");

?????????$info=mysql_fetch_array($sql);

?return?$info;

}

public?function?Total($dbtable){

$sql?=?"select?count(*)?as?total??from?".$dbtable;

$res?=?mysql_query($sql);

$rows?=?mysql_fetch_assoc($res);

$nums?=?$rows['total'];

return?$nums;

}

public?function?Page($dbtable,$offset,$pagesize){

?????$sql?=?"select?*?from?".$dbtable."?limit?$offset,$pagesize";

?$result?=?mysql_query($sql);

?$rows?=?array();

?while($row?=?mysql_fetch_array($result)){

$rows[]?=?$row;

?}

?return?$rows;

}

}

var?url?='admin.php?c=admin&a=menuProcess&b=caipin';

通過js效果和四重的傳遞b參數(shù)判斷進(jìn)行指定的分頁處理!將四個分頁界面合起來,減少代碼冗余量,全后臺只有一次ajax代碼?只有一次分頁處理

if(val=='管理菜品'){

???tdcao.innerHTML?=?'<span?style="?font-weight:bold;?background-color:#228b22;border:1px?solid;"?class="answer"?οnmοuseοver="point(this)"?onClick="menu('+add+','+tdid+')">添加</span><span?style="?font-weight:bold;?background-color:#0072bb;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+update+','+tdid+')">修改</span><span?style="?font-weight:bold;?background-color:#cd4900;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+delet+','+tdid+')">刪除</span>';

}else?if(val=='管理訂單'){

???if(result[i].fahuo=='y'){tdcao.innerHTML?=?'<span?style="?font-color:red;?background-color:#cccccc;border:1px?solid;"???class="answer"?)">已發(fā)貨</span>';}else{

???tdcao.innerHTML?=?'<span?id="fahuo"?style="?font-weight:bold;?background-color:#0072bb;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+fahuo+','+tdid+')">發(fā)貨</span>';}

}else?if(val=='管理用戶'){

???if(result[i].freez=='y'){tdcao.innerHTML?=?'<span?style="?font-weight:bold;?background-color:#cd4900;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+unfreeze+','+tdid+')">解凍</span>';}else{

???tdcao.innerHTML?=?'<span??style="?font-weight:bold;?background-color:#0072bb;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+freeze+','+tdid+')">凍結(jié)</span>';}

}else?if(val=='管理留言'){

???tdcao.innerHTML?=?'<span?style="?font-weight:bold;?background-color:#cd4900;border:1px?solid;"???class="answer"?οnmοuseοver="point(this)"?onClick="menu('+shan+','+tdid+')">刪除</span>';

}

通過給“操作”的《td》賦值來進(jìn)行調(diào)用各項列表的不同操作,并在操作span里加入onclick并傳遞不同參數(shù),使其向同一個menuController傳遞不同的處理參數(shù)進(jìn)行相應(yīng)的增刪改查操作并間數(shù)據(jù)返回到當(dāng)前界面實行無刷新數(shù)據(jù)顯示!

?function?menu(val,tdid){

????if(val=='add'){

?????document.getElementById('formac').action="admin.php?c=menu&a=addMenu";

?????document.getElementById('tables').innerHTML='<tr?><td><span>菜名:</span></td><td><input?type="text"?name="menuname"></td><td>價格:</td><td><input?type="text"?name="menuprice"></td></tr><tr>?</tr><tr><td>介紹:</td><td><input?type="text"?name="menudescrib"></td><td>數(shù)量:</td><td><input?type="text"?name="menunumber"></td></tr><tr></tr><tr></tr><tr?align="center"><td></td><td></td><td></td><td?align="right"><input?type="reset"??style="height:22px;?width:55px;?font-weight:bold;?color:#CCCCCC;background-color:#228b22;border:1px?solid;"?class="answer"?"?value="重置">??<input?type="submit"?style="height:22px;?width:55px;?font-weight:bold;?background-color:#228b22;color:#CCCCCC;border:1px?solid;"?class="answer"?value="添加"></td></tr>';

?document.getElementById('item').innerHTML?=?'';

}else?if(val=='update'){

??????var?menuname?=?document.getElementById('tr'+tdid+'td1').innerHTML;

??var?menuprice?=?document.getElementById('tr'+tdid+'td2').innerHTML;

??var?menudescrib?=?document.getElementById('tr'+tdid+'td3').innerHTML;

??var?menunumber?=?document.getElementById('tr'+tdid+'td4').innerHTML;

??document.getElementById('formac').action="admin.php?c=menu&a=updateMenu&id="+tdid;

??????document.getElementById('tables').innerHTML='<tr?><td><span>菜名:</span></td><td><input?type="text"?name="menuname"?value="'+menuname+'"></td><td>價格:</td><td><input?type="text"?name="menuprice"?value="'+menuprice+'"></td></tr><tr>?</tr><tr><td>介紹:</td><td><input?type="text"?name="menudescrib"?value="'+menudescrib+'"></td><td>數(shù)量:</td><td><input?type="text"?name="menunumber"?value="'+menunumber+'"></td></tr><tr></tr><tr></tr><tr?align="center"><td></td><td></td><td></td><td?align="right"><input?type="reset"??style="height:22px;?width:55px;?font-weight:bold;?color:#CCCCCC;background-color:#228b22;border:1px?solid;"?class="answer"?"?value="重置">??<input?type="submit"?style="height:22px;?width:55px;?font-weight:bold;?background-color:#228b22;color:#CCCCCC;border:1px?solid;"?class="answer"?value="修改"></td></tr>';

??document.getElementById('item').innerHTML?=?'';

}else?if(val=='delet'){

??document.getElementById('formac').action="admin.php?c=menu&a=deletMenu&id="+tdid;

??????document.getElementById('tables').innerHTML='<tr?align="center"><td?align="left"><input?type="submit"?style="height:33px;?width:77px;?font-weight:bold;?background-color:#228b22;color:#CCCCCC;border:1px?solid;"?class="answer"?value="確認(rèn)刪除"></td><td?align="center"><input?type="button"?οnclick="back()"??style="height:33px;?width:77px;?font-weight:bold;?color:#CCCCCC;background-color:#228b22;border:1px?solid;"?class="answer"?"?value="取消"></td></tr>';

??document.getElementById('item').innerHTML?=?'';

}else?if(val=='fahuo'){

??document.getElementById('formac').action="admin.php?c=menu&a=fahuoMenu&id="+tdid;

??????document.getElementById('tables').innerHTML='<tr?align="center"><td?align="left"><input?type="submit"?style="height:33px;?width:77px;?font-weight:bold;?background-color:#228b22;color:#CCCCCC;border:1px?solid;"?class="answer"?value="確認(rèn)發(fā)貨"></td><td?align="center"><input?type="button"?οnclick="back()"??style="height:33px;?width:77px;?font-weight:bold;?color:#CCCCCC;background-color:#228b22;border:1px?solid;"?class="answer"?"?value="取消"></td></tr>';

??document.getElementById('item').innerHTML?=?'';

}else?if(val=='freeze'){

??document.getElementById('formac').action="admin.php?c=menu&a=freezeMenu&id="+tdid;

??????document.getElementById('tables').innerHTML='<tr?align="center"><td?align="left"><input?type="submit"?style="height:33px;?width:77px;?font-weight:bold;?background-color:#228b22;color:#CCCCCC;border:1px?solid;"?class="answer"?value="確認(rèn)凍結(jié)"></td><td?align="center"><input?type="button"?οnclick="back()"??style="height:33px;?width:77px;?font-weight:bold;?color:#CCCCCC;background-color:#228b22;border:1px?solid;"?class="answer"?"?value="取消"></td></tr>';

??document.getElementById('item').innerHTML?=?'';

}else?if(val=='unfreeze'){

??document.getElementById('formac').action="admin.php?c=menu&a=unfreezeMenu&id="+tdid;

??????document.getElementById('tables').innerHTML='<tr?align="center"><td?align="left"><input?type="submit"?style="height:33px;?width:77px;?font-weight:bold;?background-color:#228b22;color:#CCCCCC;border:1px?solid;"?class="answer"?value="確認(rèn)凍結(jié)"></td><td?align="center"><input?type="button"?οnclick="back()"??style="height:33px;?width:77px;?font-weight:bold;?color:#CCCCCC;background-color:#228b22;border:1px?solid;"?class="answer"?"?value="取消"></td></tr>';

??document.getElementById('item').innerHTML?=?'';

}else?if(val=='shan'){

??document.getElementById('formac').action="admin.php?c=menu&a=shanMenu&id="+tdid;

??????document.getElementById('tables').innerHTML='<tr?align="center"><td?align="left"><input?type="submit"?style="height:33px;?width:77px;?font-weight:bold;?background-color:#228b22;color:#CCCCCC;border:1px?solid;"?class="answer"?value="確認(rèn)刪除"></td><td?align="center"><input?type="button"?οnclick="back()"??style="height:33px;?width:77px;?font-weight:bold;?color:#CCCCCC;background-color:#228b22;border:1px?solid;"?class="answer"?"?value="取消"></td></tr>';

??document.getElementById('item').innerHTML?=?'';

}

?}

Menu函數(shù)?通過修改formaction值來成功的達(dá)到向不同界面發(fā)送信息數(shù)據(jù)的效果,并且在form表單中?穿件一個隱藏域<input?type="hidden"?name="action"?value="process"?/>

?menuController中每個函數(shù)都要先判斷?action的值來認(rèn)定是否為合法操作,非法操作即返回原界面,合法操作即可調(diào)用相應(yīng)的model進(jìn)行增刪改查操作!在controller接收返回值后返回操作界面!

???-------------over


轉(zhuǎn)載于:https://www.cnblogs.com/xinyuyuanm/archive/2013/04/02/2995366.html

總結(jié)

以上是生活随笔為你收集整理的项目后台的最新认识和对MVC封装性、可维护性的更深刻认识!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。