smatry模版

注意:smarty模板前提是:前端和后端是分开的,所以肯定会有很多的后台页面,php页面和html页面是分开存储的!!

可以通过模板编写很多的功能,这里不是用的ajax方法写的,所以会刷新页面~~

下面就开始编写各种页面的功能了!!!

一、登录页面的编写也是分两个页面(后台和前端)

1.首先是后台的php页面,很简单只要引入“入口文件”,然后写出显示模板的方法就可以了。

1
2
3
4
<?php
include("../init.inc.php");  //引入入口文件

$smarty->display("login.html");  //要显示的登录界面
2.再就是前台的html页面,这个就是要写登录界面要显示的内容了。

1
2
3
4
5
6
<h1>登录页面</h1>
<form action="logincl.php" method="post">  <!--表单元素中的活动页面,登陆的处理页面,传输方式是post方式-->
    <div>用户名:<input type="text"  name="uid"/></div>   <!--用户名文本框-->
    <div>密  码:<input type="password"  name="pwd"/></div>  <!--密码文本框-->
    <input type="submit" value="登录" /> <!--登录按钮-->
</form>
看下运行效果(一定要运行php页面才可以)

3.页面出来了,再就是表单的提交处理页面,这个是相对于前面的php页面的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include("../DBDA.class.php");  //调用出来封装好的类
$db = new DBDA();  //造新对象

$uid = $_POST["uid"];  //接收传过来的数据
$pwd = $_POST["pwd"];

$sql = "select password from user where uid=‘{$uid}‘ ";  //编写语句查找用户名是传过来的用户名的密码
$attr = $db->StrQuery($sql);  //执行语句

if($attr==$pwd && !empty($pwd))  //判断一下
{
    header("location:main.php");  //如果登陆成功就可以,就会跳到主页面
}
4.登录成功后的显示页面,我这里是显示出来的数据库中的内容

  4.1后台页面的编写,其实和上一篇随笔是一样的,调出数据库并且注册变量和模板显示的方法

1
2
3
4
5
6
7
8
9
10
11
<?php
include("../init.inc.php");  //调出入口文件

include("../DBDA.class.php");  //调出数据库封装好的类
$db = new DBDA();  //造新对象

$sql = "select * from nation";  //查找数据库中的数据信息
$attr = $db->Query($sql);  //执行语句

$smarty->assign("shuju",$attr);  //注册变量信息
$smarty->display("main.html");   //模板显示
  4.2前台html页面的编写,利用表的样式显示出想要显示的信息数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<h1>主页面</h1>
<table width="50%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>  <!--表中的头信息-->
        <td>名称</td>
        <td>操作</td>
    </tr>

    <{foreach $shuju as $v}>  <!--遍历php页面的数据显示-->
         <tr>
              <td><{$v[0]}></td>  <!--代号所指的数据库信息-->
              <td><{$v[1]}></td>
              <td>操作</td>
         </tr>
    <{/foreach}>

</table>
运行结果可以看下

二、信息的相关操作(删除功能)

1.那么就要main的html页面中遍历信息中的“操作”就要修改成“删除”了,这里的传数据的方式就是“get”方式了,如下:

1
2
3
4
5
6
7
<{foreach $shuju as $v}>
  <tr>
    <td><{$v[0]}></td>
    <td><{$v[1]}></td>
    <td><a href="shanchu.php?code=<{$v[0]}>">删除</a></td>
  </tr>
<{/foreach}>
那么运行出来的“操作”的那一栏就会变成了“删除”了

2.前台的页面解决之后,那就是删除的处理页面了,记得要和php页面放在一起

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include("../DBDA.class.php");  //调用封装好的数据库类
$db = new DBDA();  //造新对象

$code = $_GET["code"];  //用get方式接收传过来的数据
$sql = "delete from nation where code=‘$code‘ ";  //删除代号等于传过来得代号的数据
$attr = $db->Query($sql,0);  //执行语句

if($attr)  //判断一下,成功刷新,不成功提示
{
    header("location:main.php");
}
else
{
    echo "删除失败!";
}
可以看下运行结果

单击“删除”按钮后,就会将那条信息删除

三、信息的相关操作(修改功能)

1.同样的main的html页面中遍历信息中的添加一个“修改”按钮,这里的传数据的方式同时也是“get”方式了,如下:

1
2
3
4
5
6
7
8
9
<{foreach $shuju as $v}>
  <tr>
    <td><{$v[0]}></td>
       <td><{$v[1]}></td>
       <td><a href="shanchu.php?code=<{$v[0]}>">删除</a>
           <a href="xiugai.php?code=<{$v[0]}>">修改</a>
       </td>
  </tr>
<{/foreach}>
前端的页面就成了如下页面

2.同样也是开始编写“修改”的页面了,这里要显示修改的原来的信息,这样就是要用到正常的显示页面,那么就是两个页面了(php页面和html页面)

  2.1修改的php页面的编写

1
2
3
4
5
6
7
8
9
10
11
<?php
include("../init.inc.php");  //调出入口文件
include("../DBDA.class.php");  //调出数据库封装好的类
$db = new DBDA();  //造新对象

$code = $_GET["code"];
$sql = "select * from nation where code=‘$code‘ ";  //查询代号等于传过来代号的信息
$attr = $db->Query($sql);

$smarty->assign("nation",$attr[0]);  //注册变量信息,顺便将值传过去
$smarty->display("xiugai.html"); //显示模板
  2.2修改的html页面的编写

1
2
3
4
5
6
<h1>修改页面</h1>
<form action="xiugaicl.php" method="post">  <!--修改页面的处理页面-->
  <input type="hidden" name="code" value="<{$nation[0]}>"/><!--默认值显示的时候就是要将传过来的值显示value,但是这里的代号是不能改的,所以要隐藏-->
  <div>名称:<input type="text" name="name" value="<{$nation[1]}>"/></div>  <!--同上面的结束-->
  <input type="submit" value="修改" />
</form>
单击“修改”按钮后,看下运行的页面

为了不想修改返回到主页面,可以在修改后面添加一个“返回”按钮

1
2
<input type="submit" value="修改" />
<a href="main.php"><input type="button" value="返回" /></a>

3.单击修改后,进行信息的修改,数据库也要进行修改(编写“修改”的处理页面)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include("../DBDA.class.php");  //调出数据库封装好的类
$db = new DBDA();  //造新对象

$code = $_POST["code"]; //将代号传过来接收
$name = $_POST["name"];  //同上

$sql = "update nation set name=‘{$name}‘ where code=‘{$code}‘";  //修改名称当代号等于传过来的代号时
$attr = $db->Query($sql,0);  //执行语句

if($attr)  //判断一下语句
{
    header("location:main.php");  //修改成功后返回主页面
}
else
{
    echo "修改失败!";
}
运行看下整体修改过程

(1)登陆后的主页面

(2)单击修改按钮

(3)修改后单击修改按钮,不修改单击返回按钮

(4)数据库也跟着修改了

到此,基本的功能就结束了,这是用的php写的,也可以让它不刷新页面进行删除和修改功能,同样的道理。

注意:smarty模板前提是:前端和后端是分开的,所以肯定会有很多的后台页面,php页面和html页面是分开存储的!!

可以通过模板编写很多的功能,这里不是用的ajax方法写的,所以会刷新页面~~

下面就开始编写各种页面的功能了!!!

一、登录页面的编写也是分两个页面(后台和前端)

1.首先是后台的php页面,很简单只要引入“入口文件”,然后写出显示模板的方法就可以了。


1

2

3

4

<?php

include("../init.inc.php");  //引入入口文件

$smarty->display("login.html");  //要显示的登录界面

2.再就是前台的html页面,这个就是要写登录界面要显示的内容了。


1

2

3

4

5

6

<h1>登录页面</h1>

<form action="logincl.php" method="post">  <!--表单元素中的活动页面,登陆的处理页面,传输方式是post方式-->

    <div>用户名:<input type="text"  name="uid"/></div>   <!--用户名文本框-->

    <div>密  码:<input type="password"  name="pwd"/></div>  <!--密码文本框-->

    <input type="submit" value="登录" /> <!--登录按钮-->

</form>

看下运行效果(一定要运行php页面才可以)

3.页面出来了,再就是表单的提交处理页面,这个是相对于前面的php页面的


1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

include("../DBDA.class.php");  //调用出来封装好的类

$db new DBDA();  //造新对象

$uid $_POST["uid"];  //接收传过来的数据

$pwd $_POST["pwd"];

$sql "select password from user where uid=‘{$uid}‘ ";  //编写语句查找用户名是传过来的用户名的密码

$attr $db->StrQuery($sql);  //执行语句

if($attr==$pwd && !empty($pwd))  //判断一下

{

    header("location:main.php");  //如果登陆成功就可以,就会跳到主页面

}

4.登录成功后的显示页面,我这里是显示出来的数据库中的内容

4.1后台页面的编写,其实和上一篇随笔是一样的,调出数据库并且注册变量和模板显示的方法


1

2

3

4

5

6

7

8

9

10

11

<?php

include("../init.inc.php");  //调出入口文件

include("../DBDA.class.php");  //调出数据库封装好的类

$db new DBDA();  //造新对象

$sql "select * from nation";  //查找数据库中的数据信息

$attr $db->Query($sql);  //执行语句

$smarty->assign("shuju",$attr);  //注册变量信息

$smarty->display("main.html");   //模板显示

4.2前台html页面的编写,利用表的样式显示出想要显示的信息数据


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<h1>主页面</h1>

<table width="50%" border="1" cellpadding="0" cellspacing="0">

    <tr>

        <td>代号</td>  <!--表中的头信息-->

        <td>名称</td>

        <td>操作</td>

    </tr>

            

    <{foreach $shuju as $v}>  <!--遍历php页面的数据显示-->

         <tr>

              <td><{$v[0]}></td>  <!--代号所指的数据库信息-->

              <td><{$v[1]}></td>

              <td>操作</td>

         </tr>

    <{/foreach}>

            

</table>   

运行结果可以看下

二、信息的相关操作(删除功能)

1.那么就要main的html页面中遍历信息中的“操作”就要修改成“删除”了,这里的传数据的方式就是“get”方式了,如下:


1

2

3

4

5

6

7

<{foreach $shuju as $v}>

  <tr>

    <td><{$v[0]}></td>

    <td><{$v[1]}></td>

    <td><a href="shanchu.php?code=<{$v[0]}>">删除</a></td>

  </tr>

<{/foreach}>

那么运行出来的“操作”的那一栏就会变成了“删除”了

2.前台的页面解决之后,那就是删除的处理页面了,记得要和php页面放在一起


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

include("../DBDA.class.php");  //调用封装好的数据库类

$db new DBDA();  //造新对象

$code $_GET["code"];  //用get方式接收传过来的数据

$sql "delete from nation where code=‘$code‘ ";  //删除代号等于传过来得代号的数据

$attr $db->Query($sql,0);  //执行语句

if($attr)  //判断一下,成功刷新,不成功提示

{

    header("location:main.php");

}

else

{

    echo "删除失败!";  

}

可以看下运行结果

单击“删除”按钮后,就会将那条信息删除

三、信息的相关操作(修改功能)

1.同样的main的html页面中遍历信息中的添加一个“修改”按钮,这里的传数据的方式同时也是“get”方式了,如下:


1

2

3

4

5

6

7

8

9

<{foreach $shuju as $v}>

  <tr>

    <td><{$v[0]}></td>

       <td><{$v[1]}></td>

       <td><a href="shanchu.php?code=<{$v[0]}>">删除</a>

           <a href="xiugai.php?code=<{$v[0]}>">修改</a>

       </td>

  </tr>

<{/foreach}>

前端的页面就成了如下页面

2.同样也是开始编写“修改”的页面了,这里要显示修改的原来的信息,这样就是要用到正常的显示页面,那么就是两个页面了(php页面和html页面)

2.1修改的php页面的编写


1

2

3

4

5

6

7

8

9

10

11

<?php

include("../init.inc.php");  //调出入口文件

include("../DBDA.class.php");  //调出数据库封装好的类

$db new DBDA();  //造新对象

$code $_GET["code"];

$sql "select * from nation where code=‘$code‘ ";  //查询代号等于传过来代号的信息

$attr $db->Query($sql);

$smarty->assign("nation",$attr[0]);  //注册变量信息,顺便将值传过去

$smarty->display("xiugai.html"); //显示模板

2.2修改的html页面的编写


1

2

3

4

5

6

<h1>修改页面</h1>

<form action="xiugaicl.php" method="post">  <!--修改页面的处理页面-->

  <input type="hidden" name="code" value="<{$nation[0]}>"/><!--默认值显示的时候就是要将传过来的值显示value,但是这里的代号是不能改的,所以要隐藏-->

  <div>名称:<input type="text" name="name" value="<{$nation[1]}>"/></div>  <!--同上面的结束-->

  <input type="submit" value="修改" />

</form>

单击“修改”按钮后,看下运行的页面

为了不想修改返回到主页面,可以在修改后面添加一个“返回”按钮


1

2

<input type="submit" value="修改" />

<a href="main.php"><input type="button" value="返回" /></a>

3.单击修改后,进行信息的修改,数据库也要进行修改(编写“修改”的处理页面)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

include("../DBDA.class.php");  //调出数据库封装好的类

$db new DBDA();  //造新对象

$code $_POST["code"]; //将代号传过来接收

$name $_POST["name"];  //同上

$sql "update nation set name=‘{$name}‘ where code=‘{$code}‘";  //修改名称当代号等于传过来的代号时

$attr $db->Query($sql,0);  //执行语句

if($attr)  //判断一下语句

{

    header("location:main.php");  //修改成功后返回主页面

}

else

{

    echo "修改失败!";  

}

运行看下整体修改过程

(1)登陆后的主页面

(2)单击修改按钮

(3)修改后单击修改按钮,不修改单击返回按钮

(4)数据库也跟着修改了

到此,基本的功能就结束了,这是用的php写的,也可以让它不刷新页面进行删除和修改功能,同样的道理。

时间: 2024-10-16 05:04:35

smatry模版的相关文章

C++ 类模板三(类模版中的static关键字)

//类模版中的static关键字 #include<iostream> using namespace std; /* 类模板本质上是c++编译器根据类型参数创建了不同的类, c++编译器在利用类模板生成类的时候会为每个类生成一个static变量 那么对于类中的static关键字就非常好理解了 static关键字修饰的变量是属于类的 同一个类的对象共享类的static静态变量 类模板中的static修饰的变量数据类型必须是确定的 不可以是类型参数 因为静态变量在类对象之前初始化 这时候还没有通

zabbix导入模版问题解决办法

当我们监控一些东西需要使用zabbix模版的时候,而模版没有怎么办?最简单的方法就是导入模版了 模版可以去https://www.zabbix.org/wiki/Zabbix_Templates/Official_Templates这里下载 而在导入的时候会报一些错误,下面给出导入vmware template报错的解决办法: 首先检查zabbix中是不是有模版对应的value map,没有的话导入的时候就报错啦. 手工创建value map: zabbix:在Administrator->ge

NAT配置模版

A 类:10.0.0.0-10.255.255.255 B 类:172.16.0.0-172.31.255.255 C 类:192.168.0.0-192.168.255.255 上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用. NAT实现方式:静态转换.动态转换.端口多路复用 1.静态转换: 第一步,设置外部端口 interface serial 0/0 ip address 与ISP互联的地址 ip nat outside 第二步,设

主动给用户发消息-微信公众号模版消息

微信公众号模版消息最大的作用就是用户在平台上提交订单或发生其它行为时,平台可以给用户发送简要的交易信息,且公众平台主动给用户发送消息目前最多的就是1.模版消息:2.客服消息. 公众号配置 首先申请一个需要的模版消息   其次,发送模版消息必须要用户的openid,获取教程可参考之前的获取用户信息篇 后台代码 我的模版消息是用来提醒交易状态的,故以网站中以交易业务流程为例 万能调用 //微信通知 $id = get_order_id($out_trade_no);//获取订单的ID $uid =

QBC查询、离线条件查询(DetachedCriteric)和分页查询模版

一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的静态方法, 这些静态方法都返回Criterion实例,每个Criterion实例代表一个查询条件. Criteria的add()方法用于加入查询条件. 3.调用Criteria的list()方法执行查询语句.该方法返回List类型的查询结果,在 List集合中存放了符合查询条件的持久化对象. 比较运

【设计模式】模版方法模式

1.定义 1.1 标准定义 Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.TemplateMethod lets subclasses redefine certain steps of an algorithm without changing the algorithm'sstructure.( 定义一个操作中的算法的框架, 而将一些步骤延迟到子类中. 使得子类可以

如何在前端模版引擎开发中避免使用eval函数

前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用.于是根据自己对模版引擎的理解,定义自己的模版格式,然后,根据自己定义的格式,编写处理函数,将模版标签中的字符串,解析成可执行的字符串,然后再用eval函数执行该可执行的字符串. 然后问题就出现了!eval等价于evil! 为什么呢?各大js权威书籍上都不提倡使用eval.下面我详细的解释一下为什么不提倡. 首先,大家需要知道,js并不是一门解释型语言.它和其他大家熟知的编程语言(c,java,c++)一样,是编译型语言.但是

Java设计模式の模版方法模式

概述 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.这就是模板方法模式的用意. 比如定义一个操作中的算法的骨架,将步骤延迟到子类中.模板方法使得子类能够不去改变一个算法的结构即可重定义算法的某些特定步骤. 模式中的角色 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架. 具体类(ConcreteClass):实

C++学习笔记之模版 remove_reference(引用移除)

int main() { int a[] = {1,2,3}; decltype(*a) b = a[0]; a[0] = 4; cout << b; //输出4 return 0; } 输出为4,因为decltype(*a)返回*a的类型,实际上是一个int&,我们就想有没有办法去掉这个引用 尝试1 template <typename T> class remove_reference { public: typedef T type; }; int main() {