项目后台的最新认识和对MVC封装性、可维护性的更深刻认识!
2013-04-02 13:57
260 查看
这周的项目让我认识到只有通过大脑的思考才能将冗杂的代码进行封装后变得更加简洁,并且让我们更简单的去进行后期维护,这就是我所追求的方向,有自己的大脑有自己的封装,有自己的更强大的可维护性!
下面是我对本次我独自完成后台的流程讲解(附代码!):
地址栏输入 admin.php MVC 获取APP_NAME==admin/ 进入adminController调用adminAction;
$this ->smarty ->display('logon.tpl');经过调用smarty display方法 显示登陆界面;
<form method="post" id="login_form" action="admin.php?c=admin&a=validate" onSubmit="return chkinput(this)">表单提交指向参数 admin的validateAction验证登陆<input type="hidden" name="action" value="login" />创建隐藏域,用于验证是否非法操作;
验证函数接收用户名密码 并调用adminModel模型进行接收返回值进行验证,验证失败返回圆截面,验证成功后 header("location:admin.php?c=admin&a=show");
调用showAction利用隐藏域传的action值判断是否非法操作 ,合法操作后调用smarti给adminname赋值并调用display显示admin.tpl进入管理界面;
模板自动加载<body onload="viewpage(1,'管理菜品')">
function viewpage(page,val){
if(val=='管理菜品'){
document.getElementById('tables').innerHTML='</br><th>ID</th><th>菜名</th><th>价格</th><th>介绍</th><th>剩余数量</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>数量</th><th>单价</th><th>购买用户</th><th>总价</th><th>是否发货</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>是否冻结</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>留言内容</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" onmouseover="point(this)" onClick="menu('+add+','+tdid+')">添加</span><span style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+update+','+tdid+')">修改</span><span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="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" )">已发货</span>';}else{
tdcao.innerHTML = '<span id="fahuo" style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+fahuo+','+tdid+')">发货</span>';}
}else if(val=='管理用户'){
if(result[i].freez=='y'){tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+unfreeze+','+tdid+')">解冻</span>';}else{
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+freeze+','+tdid+')">冻结</span>';}
}else if(val=='管理留言'){
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="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);
}
}
}
}
}
调用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 onmouseover="point(this)" onclick="viewpage('.$first.','.$val.')">首页</span>
<span onmouseover="point(this)" onclick="viewpage('.$prev.','.$val.')">上页</span>
<span onmouseover="point(this)" onclick="viewpage('.$next.','.$val.')">下页</span>
<span onmouseover="point(this)" onclick="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参数判断进行指定的分页处理!将四个分页界面合起来,减少代码冗余量,全后台只有一次ajax代码 只有一次分页处理
if(val=='管理菜品'){
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#228b22;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+add+','+tdid+')">添加</span><span style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+update+','+tdid+')">修改</span><span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="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" )">已发货</span>';}else{
tdcao.innerHTML = '<span id="fahuo" style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+fahuo+','+tdid+')">发货</span>';}
}else if(val=='管理用户'){
if(result[i].freez=='y'){tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+unfreeze+','+tdid+')">解冻</span>';}else{
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+freeze+','+tdid+')">冻结</span>';}
}else if(val=='管理留言'){
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+shan+','+tdid+')">删除</span>';
}
通过给“操作”的《td》赋值来进行调用各项列表的不同操作,并在操作span里加入onclick并传递不同参数,使其向同一个menuController传递不同的处理参数进行相应的增删改查操作并间数据返回到当前界面实行无刷新数据显示!
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>数量:</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>数量:</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="确认删除"></td><td align="center"><input type="button" onclick="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="确认发货"></td><td align="center"><input type="button" onclick="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="确认冻结"></td><td align="center"><input type="button" onclick="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="确认冻结"></td><td align="center"><input type="button" onclick="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="确认删除"></td><td align="center"><input type="button" onclick="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函数 通过修改form的action值来成功的达到向不同界面发送信息数据的效果,并且在form表单中 穿件一个隐藏域<input type="hidden" name="action" value="process" />
在 menuController中每个函数都要先判断 action的值来认定是否为合法操作,非法操作即返回原界面,合法操作即可调用相应的model进行增删改查操作!在controller接收返回值后返回操作界面!
-------------over
下面是我对本次我独自完成后台的流程讲解(附代码!):
地址栏输入 admin.php MVC 获取APP_NAME==admin/ 进入adminController调用adminAction;
$this ->smarty ->display('logon.tpl');经过调用smarty display方法 显示登陆界面;
<form method="post" id="login_form" action="admin.php?c=admin&a=validate" onSubmit="return chkinput(this)">表单提交指向参数 admin的validateAction验证登陆<input type="hidden" name="action" value="login" />创建隐藏域,用于验证是否非法操作;
验证函数接收用户名密码 并调用adminModel模型进行接收返回值进行验证,验证失败返回圆截面,验证成功后 header("location:admin.php?c=admin&a=show");
调用showAction利用隐藏域传的action值判断是否非法操作 ,合法操作后调用smarti给adminname赋值并调用display显示admin.tpl进入管理界面;
模板自动加载<body onload="viewpage(1,'管理菜品')">
function viewpage(page,val){
if(val=='管理菜品'){
document.getElementById('tables').innerHTML='</br><th>ID</th><th>菜名</th><th>价格</th><th>介绍</th><th>剩余数量</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>数量</th><th>单价</th><th>购买用户</th><th>总价</th><th>是否发货</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>是否冻结</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>留言内容</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" onmouseover="point(this)" onClick="menu('+add+','+tdid+')">添加</span><span style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+update+','+tdid+')">修改</span><span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="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" )">已发货</span>';}else{
tdcao.innerHTML = '<span id="fahuo" style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+fahuo+','+tdid+')">发货</span>';}
}else if(val=='管理用户'){
if(result[i].freez=='y'){tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+unfreeze+','+tdid+')">解冻</span>';}else{
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+freeze+','+tdid+')">冻结</span>';}
}else if(val=='管理留言'){
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="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);
}
}
}
}
}
调用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 onmouseover="point(this)" onclick="viewpage('.$first.','.$val.')">首页</span>
<span onmouseover="point(this)" onclick="viewpage('.$prev.','.$val.')">上页</span>
<span onmouseover="point(this)" onclick="viewpage('.$next.','.$val.')">下页</span>
<span onmouseover="point(this)" onclick="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参数判断进行指定的分页处理!将四个分页界面合起来,减少代码冗余量,全后台只有一次ajax代码 只有一次分页处理
if(val=='管理菜品'){
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#228b22;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+add+','+tdid+')">添加</span><span style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+update+','+tdid+')">修改</span><span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="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" )">已发货</span>';}else{
tdcao.innerHTML = '<span id="fahuo" style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+fahuo+','+tdid+')">发货</span>';}
}else if(val=='管理用户'){
if(result[i].freez=='y'){tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+unfreeze+','+tdid+')">解冻</span>';}else{
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#0072bb;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+freeze+','+tdid+')">冻结</span>';}
}else if(val=='管理留言'){
tdcao.innerHTML = '<span style=" font-weight:bold; background-color:#cd4900;border:1px solid;" class="answer" onmouseover="point(this)" onClick="menu('+shan+','+tdid+')">删除</span>';
}
通过给“操作”的《td》赋值来进行调用各项列表的不同操作,并在操作span里加入onclick并传递不同参数,使其向同一个menuController传递不同的处理参数进行相应的增删改查操作并间数据返回到当前界面实行无刷新数据显示!
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>数量:</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>数量:</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="确认删除"></td><td align="center"><input type="button" onclick="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="确认发货"></td><td align="center"><input type="button" onclick="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="确认冻结"></td><td align="center"><input type="button" onclick="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="确认冻结"></td><td align="center"><input type="button" onclick="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="确认删除"></td><td align="center"><input type="button" onclick="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函数 通过修改form的action值来成功的达到向不同界面发送信息数据的效果,并且在form表单中 穿件一个隐藏域<input type="hidden" name="action" value="process" />
在 menuController中每个函数都要先判断 action的值来认定是否为合法操作,非法操作即返回原界面,合法操作即可调用相应的model进行增删改查操作!在controller接收返回值后返回操作界面!
-------------over
相关文章推荐
- 项目后台的最新认识和对MVC封装性、可维护性的更深刻认识!
- iOS 项目一直在后台运行
- vs2010 创建sliverlight 项目提示最新运行时
- ios项目最新真机调试教程
- Java从后台访问另一个项目的方法(重定向)
- 项目实战——sqlserver 使用With as 提高sql语句的可维护性和运行效率
- 最新版IntelliJ IDEA 15开发Java Maven项目
- 我在项目中用了spring的CharacterEncodingFilter这个字符过滤器 但是后台还是乱码?
- 2016年最新iOS面试题精选总结 --- 项目问题(六)
- Spring boot 前后台分离项目 怎么处理spring security 抛出的异常
- 夺命雷公狗ThinkPHP项目之----商城9商品后台无限极分类
- 【Untiy3D 游戏开发之一】Unity3D For Mac最新3.4.1版本破解教程分享并将Unity3D项目在iphone上运行;
- 对 PHP SESSION 的深刻认识(四)---- 缓存(memcache和redis)存储session
- Android Studio 1.0.2项目实战——从一个APP的开发过程认识Android Studio
- vs2010 sp1 创建silverlight 时,提示我 “在创建silverlight项目之前,您需要安装最新的silverlight Developer运行时
- Java后台开发<二>:Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建
- 【tornado】系列项目(一)之基于领域驱动模型架构设计的京东用户管理后台
- 对项目管理的几点认识(转)
- 在前后端分离的项目中,后台使用shiro框架时,怎样使用它的会话管理系统(session),从而实现权限控制
- react-native与node.js后台项目(1)后台配置