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

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

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

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

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

<?php
include("../init.inc.php"); //引入入口文件 $smarty->display("login.html"); //要显示的登录界面

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

<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页面的

<?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后台页面的编写,其实和上一篇随笔是一样的,调出数据库并且注册变量和模板显示的方法

<?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页面的编写,利用表的样式显示出想要显示的信息数据

<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”方式了,如下:

<{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页面放在一起

<?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”方式了,如下:

<{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页面的编写

<?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页面的编写

<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>

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

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

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

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

<?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模板(登录、有关信息操作等功能)的更多相关文章

  1. 三,Smarty模板技术/引擎——变量操作(2)

    1, 变量的分类 ① 从PHP中分配的变量,比如a.php跳转到b.php时候,可以在a.php中分配变量,b.tpl中直接调用.a.php中代码,$smarty->assign(‘str’,’ ...

  2. 二 ,Smarty模板技术/引擎——变量操作(1)

    1,基本变量 $smarty->assign('data1',3); $smarty->assign('data2',3.45); $smarty->assign('data3',' ...

  3. MVC4.0 利用IActionFilter实现简单的后台操作日志功能

    首先我们要了解MVC提供了4种常用的拦截器:IActionFilter(Action拦截器接口).IExceptionFilter(异常拦截器接口).IResultFilter(Result拦截器接口 ...

  4. 深入浅出之Smarty模板引擎工作机制(一)

    深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解. ...

  5. Smarty模板重点汇总

    Smarty模板重点回顾:1.功能:前后端分离:2.实现方法:通过使用Smarty的核心类来实现,利用display方法来读取模板文 件,用正则进行替换,替换完保存到临时文件,再将临时文件加载到当前页 ...

  6. smarty模板做人员表信息删除,修改 里面的性别单选按钮民族下拉,另外登录进去可以显示姓名

    首先登录进去可以显示姓名 smarty模板做人员表信息删除,删除的时候有提示框确定删除吗. 修改 里面的性别单选按钮,要修改谁有默认选中,用了变量调节器 民族位置做下拉,用<{foreach}& ...

  7. 用smarty模板做的登录

    用smarty模板做的登录和之前我们用php做的登录区别不大 首先要新建一个php文件 一般php文件,要放在这个文件里 它对应的html文件,要放在这个目录里 下面先来做php文件 要先引入入口文件 ...

  8. Smarty模板技术学习(二)

    本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象.注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通 ...

  9. smarty模板原理和增删改查例题

    Smarty模板:(前后端分离)原理:核心是一个类,先修改配置文件,在使用的时候引入配置文件即可,(init.inc.php)$smarty->assign("ceshi", ...

随机推荐

  1. 关于firefox启动就崩溃的问题

    前些天在公司内网机器安装了Firefox Developer,每次启动直接就崩溃.最后发现问题出在Firefox的硬件加速上.解决办法: 1.右击firefox快捷方式,选择属性,在“目标”后面,即f ...

  2. MFC中在基于对话框的窗体中使用CFileDialog导致菜单栏变灰的解决方案

    CSDN的博客编辑器实在是难用……转战博客园 直接把CSDN发的搬过来了 ————————————————————————————我是分割线———————————————————————————— 第 ...

  3. 判断div是否有滚动条

    判断div是否有滚动条 var obj=document.getElementById("showDiv"); if(obj.scrollHeight>obj.clientH ...

  4. js json和字符串的互转

    json与字符串的互转:    下面格式两种只是针对引号有稍微的区别 var result = JSON.parse("{\"a\":\"擦擦\",\ ...

  5. SoapUI:mock service的使用

    mock service就是服务模拟,当我们的接口完成而服务端还没完成的时候,我们就可以用mock service来替代服务端进行接口测试. 1.1       创建MockService 创建moc ...

  6. SQLite:自学笔记(1)——快速入门

    SQLite的安装和入门 了解 啥是SQLite? SQLite是一种轻巧迷你的关系型数据库管理系统.它的特点如下: 不需要一个单独的服务器进程或操作的系统(无服务器的). SQLite 不需要配置, ...

  7. W3Cschool学习笔记——HTML5基础教程

    HTML5 建立的一些规则: 新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独 ...

  8. Android实现屏蔽微信拉黑和删除联系人功能

    实现效果: 让微信永远弹不出那个删除的对话框不就相当于屏蔽掉该功能了吗?哈哈效果如图: 实现原理: 同样是利用AccessibilityService辅助服务,关于这个服务类还不了解的同学可以先看下我 ...

  9. git 打卡的第一天

    因为某种原因,所以不得不重新巩固下前端的基础知识,从最基本的学习还得额外的学习新知识,倍感压力之大. 昨天初略学习下git,算是自己学习的一个新知识.简单记录下,希望四海八荒的大神看过来,有错的请指导 ...

  10. TypeScript和JavaScript哪种语言更先进

    TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScr ...