php自搭建mvc框架实现的入门级超市管理系统知识点总结

php学习完mvc后实现分离,添加了smarty 模板引擎

目录结构:

    

application 程序入口 存放 Controller Model templates下存放所有网页相关

framework 存放smarty mysql console basemodel basecontroller ModelFactory

index.php 唯一的入口文件,根据请求分配任务

session_start(); //开启session 验证登录信息成功 保存用户名
$p=! empty( $_GET[ 'p']) ? $_GET[ 'p'] : "admin"; //判断加载哪个平台
$c=! empty( $_GET[ 'c']) ? $_GET[ 'c'] : "User"; //接收并保存需要加载的控制器 把User作为默认使用的控制器
$act=! empty( $_GET[ 'a'])? $_GET[ 'a']: "index"; //接收并保存需要运行的 方法
define( "PLAT", $p); //平台信息
define( "DS",DIRECTORY_SEPARATOR); //平台分隔符
define( "ROOT", __DIR__.DS); //当前mvc框架的根目录
define( "APP",ROOT. 'application'.DS); //applation目录
define( "FRAMEWORK",ROOT. 'framework'.DS); //框架基础类所在路径
define( "SMARTY_PATH",ROOT. 'libs'.DS); //smarty目录
define( "PLAT_PATH",APP.PLAT.DS); //框架基础类所在路径
define( "CTRL_PATH",PLAT_PATH. "controller".DS); //controller目录
define( "MODEL_PATH",PLAT_PATH. "model".DS); //models目录
define( "VIEW_PATH",PLAT_PATH. "templates".DS); //applation目录
define( "VIEW_DATA_PATH", "application".DS.DS.PLAT.DS.DS. "templates".DS.DS); //网页js css img路径用了//因为js中俩代表一个/
//此处未用function __autoload()因为 加载Smarty的时候会找不到类 ,所以用spl_autoload_register
function autoload( $class){ //自定义自动加载类
$base_class= array( 'Console', 'Smarty', 'ModelFactory', 'MySQL', 'BaseController', 'BaseModel');
if( in_array( $class, $base_class)){
require(FRAMEWORK. $class. '.class.php'); //加载基础类库
//Console::log('加载了类'.FRAMEWORK.$class.'.class.php');
} else if( substr( $class,- 5)== "Model"){
require MODEL_PATH . $class. '.class.php'; //动态加载Model
//Console::log('加载了类'.MODEL_PATH .$class.'.class.php');
} else if( substr( $class,- 10)== "Controller"){
require CTRL_PATH. $class. ".class.php"; //动态加载controller
//Console::log('加载了类'.CTRL_PATH.$class.".class.php");
}
}
spl_autoload_register( 'autoload'); //将自定义自动加载类注册到自动加载队列中
$controller_name= $c. "Controller"; //构建控制器类名
$ctrl= new $ controller_name(); //创建相应的控制器
$action= $act. "Action"; //构建控制器方法名
$ctrl-> $action(); //执行方法

Console.class.php

<?php
     /* php通过js console实现代码调试类
    *       log类打印数据
    */
     class Console{
         public static function log( $val){
         $str= str_repeat ( "—" , 20 ). ' (∩_∩) '. str_repeat ( "—" , 20 );
     echo '<script> try{',
     'console.log('. json_encode( $val). ');',
     'console.log('. json_encode( $str). ');',
     '}catch(e){}</script>';
        }
    }
? >

ModelFactory.class.php 单例工厂

<?php
//单例工厂类
//通过这个工厂类,可以传递过来一个模型类的类名
//并返回给类的一个实例,并且,保证其为“单例的”;
class ModelFactory{
static $all_model= array(); //用于存储各个模型类的唯一实例
private function __construct(){} //禁止实例化
private function __clone(){} //禁止克隆对象
static function M( $model_name){ //传递一个模型类的类名
if (! isset( static:: $all_model[ $model_name]) //如果不存在
||
!( static:: $all_model[ $model_name] instanceof $model_name) //或者不是其实例
) {
static:: $all_model[ $model_name]= new $ model_name();
}
return static:: $all_model[ $model_name];
}
}

BaseModel.class.php

<?php
     class BaseModel{
         protected $db= null; //存储数据库工具类的实例
         function __construct(){
             $config= array(
                 'db_host'=> "localhost",
                 'db_port'=> "3306",
                 'db_user'=> "root",
                 'db_pass'=> "root",
                 'db_charset'=> "utf8",
                 'db_name'=> "db_market"
            );
             $this-> db= MySQL:: instance( $config);
        }
    }

BaseController.class.php

<?php
//基础控制器类
     class BaseController{
         public $smarty= null; //定义页面显示类
         public $currentuser= null;
         function __construct(){
header( "content-type:text/html;charset=utf8");
             $this-> smarty = ModelFactory:: M( "Smarty");
             $this-> smarty -> setTemplateDir(VIEW_PATH)
                       -> setCompileDir(ROOT. 'templates_c')
                       -> setPluginsDir(ROOT. 'plugins'.DS)
                       -> setCacheDir(ROOT. 'cache'.DS)
                       -> setConfigDir(ROOT. 'configs');
             $this-> smarty-> force_compile = false;
             $this-> smarty-> debugging = false;
         $this-> smarty-> caching= false;
         $this-> smarty-> cache_lifetime= 60* 60* 24;
         $this-> smarty-> left_delimiter= '{';
             $this-> smarty-> right_delimiter= '}';
             $this-> smarty-> assign( 'view_data_path',VIEW_DATA_PATH);
             $currentuser= isset( $_SESSION[ 'u'])? $_SESSION[ 'u']: '游客'; //调用session显示当前登陆用户名
             $purview= isset( $_SESSION[ 'upurview'])? $_SESSION[ 'upurview']: '3';
             $this-> smarty-> assign( 'purview', $purview);
             $this-> smarty-> assign( 'currentuser', $currentuser);
            @ Console:: log( "BaseController 中实例化了smarty");
        }
    }

Mysql.class.php

<?php
/*  php调试工具
*
*/
/****************************************处理mysql数据类************************************************
*   
*   
*
*/
     class MySQL{    
         private $db_host; //数据库基本参数
         private $db_admin;
         private $db_pass;
         private $db_name;
         private $db_port;
         private $charset; //数据库编码设置
         private $conn; //数据库连接
         //----------单例模式设计---------------------------------------
         private static $instance= null; //存储单例对象
         static function instance( $config){ //单例第3步
             //if(isset(self::$instance)){//判断是否存在对象
             if(! self:: $instance instanceof self){ //代替上一行,更常用的做法
                 self:: $instance= new self( $config);
            }
             return self:: $instance;
        }
         private function __clone(){}
         private function __construct( $config){
             $this-> db_host=! empty( $config[ 'db_host'])? $config[ 'db_host']: "localhost"; //参数非空检测 赋默认值
             $this-> db_admin=! empty( $config[ 'db_admin'])? $config[ 'db_admin']: "root";
             $this-> db_pass=! empty( $config[ 'db_pass'])? $config[ 'db_pass']: "root";
             $this-> db_name=! empty( $config[ 'db_name'])? $config[ 'db_name']: "db_market";
             $this-> db_port=! empty( $config[ 'db_port'])? $config[ 'db_port']: "3306";
             $this-> charset=! empty( $config[ 'charset'])? $config[ 'charset']: "utf8";
             $this-> conn= new mysqli( $this-> db_host, $this-> db_admin, $this-> db_pass) or die( "链接失败"); //初始化conn
             $this-> setCharset( $this-> charset); //设置编码
             $this-> selectDB( $this-> db_name); //使用数据库
        }   
         function setCharset( $charset ){ //可以设定要使用的连接编码
             $this-> conn-> query( "set names $charset ");
        }
         function changeDB( $db_name){ //修改当前需要使用的数据库
             $this-> db_name= $db_name;
        }
         function selectDB( $dbname){ //可以设定要使用的数据库
             $this-> conn-> query( "use $dbname ");
        }
         function closeDB(){ //可关闭连接
             $this-> conn-> close();
        }
         function runQuery( $sql){ //通用query运行器
             return $this-> conn-> query( $sql);
        }
         function selectAllDate( $sql){ //查询出所有数据
             Console:: log( $sql);
             $models= array();
             $this-> conn-> query( "set charset set 'utf8'");
             $this-> conn-> query( $sql);
             $result= $this-> conn-> query( $sql) or die( "查询数据无结果"); //如果无无数,加判断
             //$result=$this->conn->query($sql);//如果无无数,加判断
             Console:: log( $this-> conn-> query( $sql));
                 if( $result-> num_rows> 0){
                     for ( $i= 0; $row= $result-> fetch_assoc(); $i++) {
                         $models[ $i] = $row;
                    }
                }
                 return $models;
        }
         //---------增删改查,运行squery前判断数据库是否存在------------------------------
         function insertDate( $tbname, $obj){       //表中插入数据
             $sqlstr1= "insert into { $tbname } (";              //字符串组成部分
             $sqlstr2= ")values(";
             $sqlstr3= ")";
             $str= json_encode( $obj,JSON_UNESCAPED_UNICODE);          //实例化model成字符串
             $newstr = substr( $str, 1, strlen( $str)- 2);         //去除 前后 {}
             $newstr= str_replace( " \" ", "'", $newstr);       // " 替代成 '
             $strarray= explode( ",", $newstr);          //字符串转化成array
                 foreach ( $strarray as $key => $value) {      //遍历字符串
                     $inarray= explode( ":", $value);                //取出键跟值
                     //echo $inarray[0]."||".$inarray[1];
                     //在键值后加, 最后一个不加
                     if( end( $strarray)== $value){
                         $sqlstr1.= $inarray[ 0];
                         $sqlstr2.= $inarray[ 1];
                    } else{
                         $sqlstr1.= $inarray[ 0]. ",";
                         $sqlstr2.= $inarray[ 1]. ",";
                    }
                }
                     $sqlstr1= str_replace( "'", "", $sqlstr1); //去掉单引号
                     $sql= $sqlstr1. $sqlstr2. $sqlstr3;
                     Console:: log( $sql);      //拼接 运行sql
                     $this-> conn-> query( "set names 'utf8'");
                     return $this-> conn-> query( $sql);
        }
         //修改数据
         function updateDateByID( $tbname, $id, $obj){
             //$sql="update gb_users set username='amy',passwd='admin',email='2222',insert_time=now() where id=12;";
             $sqlstr1= "update { $tbname } set ";                       //字符串组成部分
             $sqlstr2= "";
             $sqlstr3= " where id= $id ";
             $str= json_encode( $obj,JSON_UNESCAPED_UNICODE);          //实例化model成字符串
             $newstr = substr( $str, 1, strlen( $str)- 2);         //去除 前后 {}
             $newstr= str_replace( " \" ", "'", $newstr);       // " 替代成 '
             $strarray= explode( ",", $newstr);      //字符串转化成array
                 foreach ( $strarray as $key => $value) {      //遍历字符串
                     $inarray= explode( ":", $value);                    //取出键跟值
                     if( end( $strarray)== $value){                  //在键值后加, 最后一个不加
                         $sqlstr2.= str_replace( "'", "", $inarray[ 0]). "=". $inarray[ 1];
                    } else{
                         $sqlstr2.= str_replace( "'", "", $inarray[ 0]). "=". $inarray[ 1]. ",";
                    }
                }
             $sql= $sqlstr1. $sqlstr2. $sqlstr3;             //拼接 运行sql
             Console:: log( $sql);
             $this-> conn-> query( $sql);
        }
         function deleteDateById( $table, $id){ //删除数据通过id
             $sql= "delete from { $table } where id={ $id }";
             $result= $this-> conn-> query( $sql);
             Console:: log( $result);
        }
         function getCount( $table){ //查询表中数据数量
             $sql= "select count(*) as count from { $table }";
             $result= $this-> conn-> query( $sql);
             if( $result-> num_rows> 0){
                 $row= $result-> fetch_assoc();
                 return $row[ 'count'];
            }
        }
         function getPage( $sql, $star, $length){ //分页数据查询
             $models= array();
             $this-> conn-> query( "set charset set 'utf8'");
             $sql= $sql. " limit { $star },{ $length }";
             $this-> conn-> query( $sql);
             $result= $this-> conn-> query( $sql) or die( "查询数据无结果"); //如果无无数,加判断
                 if( $result-> num_rows> 0){
                     for ( $i= 0; $row= $result-> fetch_assoc(); $i++) {
                         $models[ $i] = $row;
                    }
                }
                 return $models;
        }
    }

billcontroller

<?php
//定义控制器类
class BillController extends BaseController{
function selectAction(){ //查询出所有的数据
$bmodel= ModelFactory:: M( "BillModel"); //实例化model
$suppliers= $bmodel-> getALLSupplier(); //查询所有供应商
$this-> smarty-> assign( "supplier", $suppliers);
$arr= array();
$pagecount= $bmodel-> getPageCount(); //查询多少页
Console:: log( "pagecount". $pagecount);
for( $i= 1; $i<= $pagecount; $i++){
$arr[ $i]= $i;
}
$this-> smarty-> assign( "pagecount", $arr);
$page= isset( $_GET[ 'from'])? $_GET[ 'from']: 'bill'; //按照条件查询bill信息
$pagenum= isset( $_GET[ 'pn'])? $_GET[ 'pn']: 1; //按照条件查询bill信息
$this-> smarty-> assign( "pagenum", $pagenum);
Console:: log( $pagenum);
if( $page== "find"){
$par1= $_GET[ 'gname']!= "" ? $_GET[ 'gname'] : "%";
$par2= $_GET[ 'tigong']!= "" ? $_GET[ 'tigong'] : "%";
$par3= $_GET[ 'fukuan']!= "" ? $_GET[ 'fukuan'] : "%";
$sql= "where gname like '%{ $par1 }%' and sname like '{ $par2 }' and ispay like '{ $par3 }' order by g.ctime desc";
$result= $bmodel-> getAllBill( $sql, $pagenum); //查询所有订单
$this-> smarty-> assign( "result", $result);
$this-> smarty-> display( 'billList.tpl');
}
if( $page== "bill"){
$sql= "where gname like '%' and sname like '%' and ispay like '%' order by g.id ";
$result= $bmodel-> getAllBill( $sql, $pagenum); //查询出所有账单信息
$this-> smarty-> assign( "result", $result);
$this-> smarty-> display( 'billList.tpl');
}
}
function showAddAction(){ //跳转到添加页面
$bmodel= ModelFactory:: M( "BillModel"); //实例化model
$suppliers= $bmodel-> getALLSupplier(); //查询所有供应商
$this-> smarty-> assign( "supplier", $suppliers);
$this-> smarty-> display( 'billAdd.tpl');
}
function addAction(){ //添加数据
if( $_POST){
$bid= $_POST[ 'billId'];
$bname= $_POST[ 'billName'];
$bnum= $_POST[ 'billNum'];
$bmoney= $_POST[ 'money'];
$bsupplier= $_POST[ 'supplier'];
$bzhifu= $_POST[ 'zhifu'];
$ctime= date( "Y-m-d");
$bm = array(
'gid' => $bid,
'gname' => $bname,
'gcompany' => $bsupplier,
'gcount' => $bnum,
'gmoney' => $bmoney,
'ispay' => $bzhifu,
'ctime' => $ctime
);
$bmodel= ModelFactory:: M( "BillModel"); //实例化model
$result= $bmodel-> addBill( $bm); //添加数据
if( $result){
echo "<script>document.location.href='index.php?p=admin&c=bill&a=select&from=bill';</script>";
} else{
echo "<script>alert('数据插入失败,可能存在重复数据');history.back();</script>";
}
}
}
function showAction(){
$gid= $_GET[ 'gid'];
$gname= $_GET[ 'gname'];
$gcompany= $_GET[ 'gcompany'];
$gmoney= $_GET[ 'gmoney'];
$ispay= $_GET[ 'ispay'];
$this-> smarty-> assign( "gid", $gid);
$this-> smarty-> assign( "gname", $gname);
$this-> smarty-> assign( "gcompany", $gcompany);
$this-> smarty-> assign( "gmoney", $gmoney);
if( $ispay){
$ispay= "已付款";
} else{
$ispay= "未付款";
}
$this-> smarty-> assign( "ispay", $ispay);
$this-> smarty-> display( 'billView.tpl');
}
function delAction(){ //del页面
$bmodel= ModelFactory:: M( "BillModel"); //实例化model
$delid= $_GET[ 'id'];
$result= $bmodel-> delBill( $delid);
Console:: log( $result);
echo "<script>document.location.href='index.php?p=admin&c=bill&a=select&from=bill';</script>";
}
function showUpdateAction(){
$id= $_GET[ 'id'];
$sid= $_GET[ 'sid'];
$gid= $_GET[ 'gid'];
$gname= $_GET[ 'gname'];
$gcompany= $_GET[ 'gcompany'];
$gmoney= $_GET[ 'gmoney'];
$ispay= $_GET[ 'ispay'];
$this-> smarty-> assign( "id", $id);
$this-> smarty-> assign( "gid", $gid);
$this-> smarty-> assign( "sid", $sid);
$this-> smarty-> assign( "gname", $gname);
$this-> smarty-> assign( "gcompany", $gcompany);
$this-> smarty-> assign( "gmoney", $gmoney);
$this-> smarty-> assign( "ispay", $ispay);
$this-> smarty-> display( 'billUpdate.tpl');
}
function updateAction(){
if( $_POST){
$id= $_POST[ 'id'];
$bid= $_POST[ 'providerId'];
$bname= $_POST[ 'providerName'];
$bnum= isset( $_POST[ 'billNum'])? $_POST[ 'billNum']: '10';
$bmoney= $_POST[ 'address'];
$bsupplier= $_POST[ 'sid'];
$bzhifu= $_POST[ 'zhifu'];
$ctime= date( "Y-m-d");
$bm = array(
'gid' => $bid,
'gname' => $bname,
'gcompany' => $bsupplier,
'gcount' => $bnum,
'gmoney' => $bmoney,
'ispay' => $bzhifu,
'ctime' => $ctime
);
$bmodel= ModelFactory:: M( "BillModel"); //实例化model
$result= $bmodel-> updateBill( $id, $bm); //数据 通过id
echo "<script>document.location.href='index.php?p=admin&c=bill&a=select&from=bill';</script>";
}
}
}

billmodel

<?php
class BillModel extends BaseModel{
function getAllBill( $sql, $pagecount){ //获取所有订单信息
$count= $this-> getPageCount();
$sql1= "select s.id as sid,g.id,g.gid,g.gname,s.sname as gcompany,g.gcount,g.gmoney,g.ispay,g.ctime from tb_goods as g
left join tb_supplier as s on g.gcompany=s.id ";
$startpage= $pagecount* 8- 8; //分页开始
$sql1= $sql1. $sql. "limit $startpage ,8";
Console:: log( $sql1);
return $this-> db-> selectAllDate( $sql1);
}
function getPageCount(){ //获取分页数据
$count= $this-> db-> getCount( 'tb_goods'); //要查询的页面
$count= ceil( $count/ 8);
return $count;
}
function getALLSupplier(){ //获取所有的供应商信息
$sql= "select id,sname from tb_supplier"; //查询出所有供应商显示在select中
$supplier= $this-> db-> runQuery( $sql);
$suppliers= array();
if( $supplier-> num_rows> 0){
while ( $row= $supplier-> fetch_assoc()) {
$suppliers[]= $row;
}
}
return $suppliers;
}
function addBill( $cfg){
return $this-> db-> insertDate( "tb_goods", $cfg);
}
function delBill( $id){
$sql= "delete from tb_goods where id={ $id }";
return $this-> db-> runQuery( $sql);
}
function updateBill( $id, $obj){
return $this-> db-> updateDateByID( "tb_goods", $id, $obj);
}
}

header footer

<!DOCTYPE html >
< html >
< head lang= "en" >
< meta charset= "UTF-8" >
< title >超市账单管理系统 </ title >
< link rel= "stylesheet" href= "{$view_data_path}css/public.css" />
     < link rel= "stylesheet" href= "{$view_data_path}css/style.css" />
< link rel= "stylesheet" href= "{$view_data_path}css/bootstrap.min.css" >
< script src= "{$view_data_path}js/jquery.min.js" ></ script >
< script src= "{$view_data_path}js/bootstrap.min.js" ></ script >
     < script src= "{$view_data_path}js/jquery.js" ></ script >
     < script src= "{$view_data_path}js/js.js" ></ script >
     < script src= "{$view_data_path}js/time.js" ></ script >
</ head >
< body >
<!--头部-->
< header class= "publicHeader" >
< h1 >超市账单管理系统 </ h1 >
< div class= "publicHeaderR" >
< p >< span id= "hours" >下午好! </ span >< span style= "color: #fff21b" >{ $currentuser} </ span > , 欢迎你! </ p >
< a href= "index.php" >退出 </ a >
</ div >
</ header >
<!--时间-->
< section class= "publicTime" >
< span id= "time" >2015年1月1日 11:11 星期一 </ span >
< a href= "#" >温馨提示:天气转凉,请注意添衣! </ a >
</ section >
<!--主体内容-->
< section class= "publicMian " >
< div class= "left" >
< h2 class= "leftH2" >< span class= "span1" ></ span >功能列表 < span ></ span ></ h2 >
< nav >
< ul class= "list" >
< li >< a href= "index.php?p=admin & c=bill & a=select & from=bill & pn=1" >账单管理 </ a ></ li >
< li >< a href= "index.php?p=admin & c=provider & a=select" >供应商管理 </ a ></ li >
< li >< a href= "index.php?p=admin & c=user & a=showUser & from=user" >用户管理 </ a ></ li >
< li >< a href= "index.php?p=admin & c=user & a=changePassPage" >密码修改 </ a ></ li >
< li >< a href= "index.php?p=admin & c=user & a=quit" >退出系统 </ a ></ li >
</ ul >
</ nav >
</ div >
< div class= "right" >


</ div >
</ section >
< footer class= "footer" >
</ footer >
</ body >
</ html >

bill list.tpl

< script >
$( document). ready( function(){
var innerid= $( "#cpage"). data( 'myid');
var innerid= innerid- 1;
$( ".list li"). eq( 0). addClass( 'libg');
$( ".pagination li"). eq( innerid). addClass( 'active');
});
var myid= 0;
function saveDelId( var1){
myid= $( var1). data( 'myid');
}
function delData(){
window. location. href= 'index.php?p=admin&c=bill&a=del&id='+ myid;
}
</ script >
< div class= "location" >
< strong >你现在所在的位置是: </ strong >
< span >账单管理页面 </ span >
</ div >
< div class= "search" >
< span >商品名称: </ span >
< input type= "hidden" id= "goodssearch" name= "goodssearch" />
< input type= "text" id= "gname" name= "gname" placeholder= "请输入商品的名称" />
< span >供应商: </ span >
< select id= "tigong" name= "tigong" >
< option value= "" >--请选择-- </ option >
{section loop= $supplier name=two}
< option value= "{$supplier[two].sname}" >{ $supplier[two].sname} </ option >
{sectionelse}
< option value= "" >无数据 </ option >
{/section}
</ select >
< span >是否付款: </ span >
< select id= "fukuan" name= "fukuan" >
< option value= "" >--请选择-- </ option >
< option value= "1" >已付款 </ option >
< option value= "0" >未付款 </ option >
</ select >
< input type= "button" value= "查询" onclick= "gfind()" />
< a href= "index.php?p=admin & c=bill & a=showAdd" >添加订单 </ a >
< script >
function gfind(){
var par1= $( "#gname"). val();
var par2= $( "#tigong"). val();
var par3= $( "#fukuan"). val();
document. location. href= "index.php?p=admin&c=bill&a=select&from=find&gname="+ par1+ "&tigong="+ par2+ "&fukuan="+ par3;
}
</ script >
</ div >
<!--账单表格 样式和供应商公用-->
< table class= "providerTable" cellpadding= "0" cellspacing= "0" >
< tr class= "firstTr" >
< th width= "10%" >账单编码 </ th >
< th width= "20%" >商品名称 </ th >
< th width= "10%" >供应商 </ th >
< th width= "10%" >账单金额 </ th >
< th width= "10%" >是否付款 </ th >
< th width= "10%" >创建时间 </ th >
< th width= "30%" >操作 </ th >
</ tr >
{section loop= $result name=n}
< tr >
< td >{ $result[n].gid} </ td >
< td >{ $result[n].gname} </ td >
< td >{ $result[n].gcompany} </ td >
< td >{ $result[n].gmoney} </ td >
{if $result[n].ispay eq '1'}
< td >已付款 </ td >
{else}
< td >未付款 </ td >
{/if}
< td >{ $result[n].ctime} </ td >
< td >
< a href= "index.php?p=admin & c=bill & a=show & id={$result[n].id} & gid={$result[n].gid} & gname={$result[n].gname} & gcompany={$result[n].gcompany} & gmoney={$result[n].gmoney} & ispay={$result[n].ispay}" >
                                 < img src= "{$view_data_path}img/read.png" alt= "查看" title= "查看" /></ a >
< a href= "index.php?p=admin & c=bill & a=showUpdate & id={$result[n].id} & gid={$result[n].gid} & sid={$result[n].sid} & gname={$result[n].gname} & gcompany={$result[n].gcompany} & gmoney={$result[n].gmoney} & ispay={$result[n].ispay}" >< img src= "{$view_data_path}img/xiugai.png" alt= "修改" title= "修改" /></ a >
             < a href= "#" data-myid= "{$result[n].id}" onclick= "saveDelId(this)" class= "removeProvider" >< img src= "{$view_data_path}img/schu.png" alt= "删除" title= "删除" /></ a >
</ td >
</ tr >
{/section}
< tr >< td colspan= "7" >
< ul id= "cpage" data-myid= "{$pagenum}" class= "pagination pagination-sm" >
{foreach from= $pagecount key=k item=value }
< li >< a href= "index.php?p=admin & c=bill & a=select & from=bill & pn={$value}" >{ $value} </ a ></ li >
{/foreach}
</ ul ></ td ></ tr >
<!--<li><a href="#">&raquo;</a></li>-->
<!--<li><li><a href="#">&laquo;</a></li></li>-->
</ table >
             <!--点击删除按钮后弹出的页面-->
             < div class= "zhezhao" ></ div >
             < div class= "remove" id= "removeProv" >
             < div class= "removerChid" >
                 < h2 >提示 </ h2 >
                 < div class= "removeMain" >
                     < p >你确定要删除该供应商吗? </ p >
                     < a href= "#" id= "yes" onclick= "delData()" >确定 </ a >
                     < a href= "#" id= "no" >取消 </ a >
                 </ div >
             </ div >
             </ div >

billadd.tpl

{include file="header.tpl" title=foo}
< script >
$( document). ready( function(){
$( ".list li"). eq( 0). addClass( 'libg');
});
         function cksubmit( p1){
             p1. form. action= "index.php?p=admin&c=bill&a=add";
             p1. form. submit();
        }
</ script >
< div class= "location" >
< strong >你现在所在的位置是: </ strong >
< span >账单管理页面 >> 订单添加页面 </ span >
</ div >
< div class= "providerAdd" >
< form action= "#" method= "post" >
<!--div的class 为error是验证错误,ok是验证成功-->
< div class= "" >
< label for= "billId" >订单编码: </ label >
< input type= "text" name= "billId" id= "billId" required />
< span >*请输入订单编码 </ span >
</ div >
< div >
< label for= "billName" >商品名称: </ label >
< input type= "text" name= "billName" id= "billName" required />
< span >*请输入商品名称 </ span >
</ div >
< div >
< label for= "billNum" >商品数量: </ label >
< input type= "text" name= "billNum" id= "billNum" required />
< span >*请输入大于0的正自然数,小数点后保留2位 </ span >
</ div >
< div >
< label for= "money" >总金额: </ label >
< input type= "text" name= "money" id= "money" required />
< span >*请输入大于0的正自然数,小数点后保留2位 </ span >
</ div >
< div >
< label >供应商: </ label >
< select name= "supplier" >
< option value= "" >--请选择相应的提供商-- </ option >
                            {section loop= $supplier name=two}
                                 < option value= "{$supplier[two].id}" >{ $supplier[two].sname} </ option >
                            {sectionelse}
                                 < option value= "" >无数据 </ option >
                            {/section}
</ select >
< span >*请选择供应商 </ span >
</ div >
< div >
< label >是否付款: </ label >
< input type= "radio" name= "zhifu" value= "0" checked />未付款
< input type= "radio" name= "zhifu" value= "1" />已付款
</ div >
< div class= "providerAddBtn" >
<!--<a href="#">保存</a>-->
<!--<a href="pageshow.php?topage=billlist返回</a>-->
< input type= "button" value= "保存" onclick= "cksubmit(this)" />
< input type= "button" value= "返回" onclick= "history.back(-1)" />
</ div >
</ form >
</ div >
{include file="footer.tpl"}{include file="footer.tpl"}

billupdate.tpl

{include file="header.tpl" title=foo}
< script >
$( document). ready( function(){
$( ".list li"). eq( 0). addClass( 'libg');
});
         function upform( para){
             para. form. action= "index.php?p=admin&c=bill&a=update";
             para. form. submit();
        }
</ script >
< div class= "location" >
< strong >你现在所在的位置是: </ strong >
< span >账单管理页面 >> 订单添加页面 </ span >
</ div >
< div class= "providerAdd" >
< form action= "#" method= "post" >
<!--div的class 为error是验证错误,ok是验证成功-->
                 < input type= "hidden" name= "id" value= "{$id}" />
< div class= "" >
< label for= "providerId" >订单编码: </ label >
< input type= "text" name= "providerId" id= "providerId" placeholder= "{{$gid}}" value= "{{$gid}}" />
< span >* </ span >
</ div >
< div >
< label for= "providerName" >商品名称: </ label >
< input type= "text" name= "providerName" id= "providerName" value= "{$gname}" placeholder= "{$gname}" />
< span >* </ span >
</ div >
< div >
< label for= "address" >总金额: </ label >
< input type= "text" name= "address" id= "address" placeholder= "{$gmoney}" value= "{$gmoney}" />
< span >* </ span >
</ div >
< div >
< label for= "fax" >供应商: </ label >
< input type= "text" name= "fax" id= "fax" value= "{$gcompany}" placeholder= "{$gcompany}" />
                     < input type= "hidden" name= "sid" value= "{$sid}" />
< span >* </ span >
</ div >
< div >
< label >是否付款: </ label >
                    {if $ispay eq '1'}
< input type= "radio" value= "0" name= "zhifu" />未付款
                         < input type= "radio" value= "1" name= "zhifu" checked />已付款
{else}
< input type= "radio" value= "0" name= "zhifu" checked />未付款
                         < input type= "radio" value= "1" name= "zhifu" />已付款
{/if}
</ div >
< div class= "providerAddBtn" >
<!--<a href="#">保存</a>-->
<!--<a href="pageshow.php?topage=billlist">返回</a>-->
< input type= "button" value= "保存" onclick= "upform(this)" />
< input type= "button" value= "返回" onclick= "history.back(-1)" />
</ div >
</ form >
</ div >
{include file="footer.tpl"}{include file="footer.tpl"}

billview.tpl

{include file="header.tpl" title=foo}
< script >
$( document). ready( function(){
$( ".list li"). eq( 0). addClass( 'libg');
});
</ script >
< div class= "location" >
< strong >你现在所在的位置是: </ strong >
< span >账单管理页面 >> 信息查看 </ span >
</ div >
< div class= "providerView" >
< p >< strong >订单编号: </ strong >< span >{ $gid} </ span ></ p >
< p >< strong >商品名称: </ strong >< span >{ $gname} </ span ></ p >
< p >< strong >总金额: </ strong >< span >{ $gmoney} </ span ></ p >
< p >< strong >供应商: </ strong >< span >{ $gcompany} </ span ></ p >
< p >< strong >是否付款: </ strong >< span >{ $ispay} </ span ></ p >

< a href= "#" onclick= "history.back(-1)" >返回 </ a >
</ div >
{include file="footer.tpl"}{include file="footer.tpl"}


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liu709127859

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值