2015-05-27
大家写网站的时候可能都会遇到这种情况,就是写一个表单,这个表单是用来添加一篇文章的,我们屁颠屁颠的在后台接收数据,然后存入数据库.现在有个问题.当你要对该文章进行修改的时候,你是怎么处理的?
我的方法是在同一个表单中做文章,下面的例子是我用 Thinkphp框架写的代码,如果你不懂Thinkphp,没有关系,我只是想说说我的解决方案.
前台如果是这样的.
说明,表示提交到article控制器的add方法.进行接收操作.
就是这样一个简单的表单,
我们在后台直接接收数据.
public function add{
if(IS_POST){
//这里其实可以使用在按钮上加一个name="submit"属性.然后使用if(isset($_POST['submit'])来判断post提交.
$title = $_POST['title'];
$content = $_POST['content'];
if($title&&$content){
//插入数据.
$flag = 模型->add(post 过来的数据.);
if($flag) $str = "成功";
else $sttr="失败";
}else{
$str = "失败,标题或者内容不能为空!";
$this->error($str,U('article/index'));
exit;
}
//返回操作结果.
$this->success("添加".$str,U('article/index')); //跳转到文章列表 页
exit;
}
$this->display();//如果不是提交,则显示我们的模板.
}
操作成功失败,跳回添加页面.这里注意一点,我在有些地方添加了一个exit 结构.主要是因为如果不加,会显示下面的模板文件.因为我没有用在那个if(IS_POST)后面加else.
//好,如果要进行修改.我们通过url连接,将其指向article 控制器的add方法,将id传递过去.,也就是上面的方法.
表单中,我们需要这样修改.
我在表单中添加了一个隐藏域.如果有那个变量,则添加该id
后台处理页面.
public function add{
if(IS_POST){
$title = $_POST['title'];
$content = $_POST['content'];
if($title&&$content){
//插入数据.
//这里我先建立一个数组,将数据放入
$data = array(
'title' => $title,
'cntent'=> $content
);
if($id = $_POST['id']){
//表示有id...
$flag = 模型修改数据;
}else{
$flag = 模型添加数据;
$type = "添加";
}
if($flag) $str = "成功";
else $sttr="失败";
}else{
$str = "失败,标题或者内容不能为空!";
$this->error($str,U('article/index'));
exit;
}
//返回操作结果.
$this->success($type.$str,U('article/index')); //跳转到文章列表 页
exit;
}
//这里模板输出我们同样要注意.
if($id = $_GET['id']){
$this->ret = 模型通过$id 查询数据,放入模板中.
}
$this->display();//如果不是提交,则显示我们的模板.
}
好吧,逻辑比较混乱...下面拓展一点,如果有附件之类的呢?该如何处理呢.其实原理类似.只是你必须判断是否有附件提交过来. 使用 if($_FILES['file']['name'])来判断,因为如果只写if($_FILES['file'])是不能判断确实有附件提交过来的.因为如果没有附件,该数组不为空,而是Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 )这样的内容.这个在if判断语句中当然是为真了.
所以我们要加上名字来判断...
好了,说了一堆渣渣,谢谢你能看完.
May it helpful to you .
Best Wishes.
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
6
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
PHP中include和require区别之我见
09-05
常用dos命令及语法
2014-09-27
将视频设置为Android手机开机动画的教程
2014-12-11
php递归返回值的问题
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
java中的info是什么意思
2022-03-24
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
IcePHP框架中的快速后台中的通用CRUD功能框架
2014-09-05
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP数组函数array
2014-09-05
学ug编程如何快速入门?
2022-03-17
斗罗大陆魂师对决手游官方版下载v2.31.1 安卓版
卡牌对战 1.55G
下载坦克大决战游戏下载v1.9462 安卓官方正版
射击枪战 388.5M
下载孤胆车神维加斯官方正版(Gangstar Vegas)下载v8.5.1c 安卓手机版
射击枪战 2.44G
下载孤胆车神维加斯僵尸城版本下载v8.5.1c 安卓版
射击枪战 2.44G
下载英雄联盟云顶之弈手机版本下载v14.8.5768838 安卓最新版本
策略塔防 78.2M
下载苍蓝前线手游下载v1.1.0 安卓版
策略塔防 464.3M
下载崩坏学园2手游下载v12.2.8 安卓最新版本
角色扮演 323.3M
下载彩虹联萌手游下载v7.3.23015 安卓官方版
卡牌对战 804.7M
下载花花填色苹果版下载v2.2.5 iPhone版
下载
奥特曼超时空英雄官方正版下载v1.0.2 安卓版
下载
全民奇迹2ios版下载v15.0.0 iphone版
下载
罗布乐思roblox国际服最新版官方正版下载v2.682.538 安卓版
下载
com.roblox.client国际服下载v2.682.538 安卓版
下载
绝地鸭卫游戏下载v0.2.3 安卓版
下载
梦幻模拟战官服下载v6.13.2110 安卓最新版
下载
天龙八部手游8868版下载v1.133.2.2 安卓版
下载