php 在同一个表单中添加和修改数据 二

时间:2023-02-11 07:26:24

好吧,其实我这人不看重访问量的,但是今天一天的访问量比我去年发的一篇还要多.

我还是有点小小的惊讶的.作为一个做技术的屌丝.不,我不认为自己是屌丝,我觉得编程是一件高大山的职业.虽然很累,但是确实能让你每天的生活很充实.

No matter whether you believe it or not,anyhow I believe it.

今天接着上一篇来说,我们只是简单的文章的上传和修改.

如果涉及到附件呢.在修改的时候如果需要更换附件的时候,这真的是一件很头痛的事情.

我不知道大家是怎样实现的.下面我分享一下我的方法吧.

在页面中我是这样实现的.

<form method="POST" action="{:U('article/add')}" enctype="multipart/form-data" >

    <input type="text" name="title" />

    <textarea name="content" ></textarea>

    <input type="file" name="file" />

    <input type="submit" name="submit" value="submit" />

</form>

我在后台进行添加操作.

首先我们再开始接收数据.如title,content的内容.判断内容是否为空,为空直接返回.

如果有我们需要判断一下是否有附件,如果有附件的话,我们先通过程序将其移动到项目的uploads文件夹中,

如果失败的话,我们就直接返回了.

好,上程序.

if(IS_POST){

  $title = $_POST['title'];

  $content = $_POST['content'];

  if($title&&$content){

     if($_FILES['file']['name'])

        //开始对提交的附件进行处理.

       如果成功,则可以得到我们附件的名称和上传的地址等信息,看你需要什么

        如果失败的话

        返回错误.

    }

  $arr = array(

        'title' => $title,

        'content' => $content;

        'filename' => ///

        'filepath' => ///

  );

  $flag = 进行插入操作..

   if($flag) $str = "成功";

   else      $str = "失败";

   $this->success("添加".$str,//跳到列表路由中.);

  }

}//end of post.

 //下面是模板内容....



现在我们如果是要修改该内容的话.

我想到了一个方法..

在页面中,如果有附件,我们显示图片的名称.如果需要修改,我们就将file的提交框显示出来..

我只写关键部分了哈..

<if condition="$result[filename]">

  <input type="text" name="" value="{$result.filename}" readonly onclick="show_file(this)" />

  <input type="file" name="file" style="display:none"/>

<else/>

  <input type="file" name="file" />

</if>

<script type="text/javascript">

//这里我们使用jquery来实现.

function show_file(o){

$this = $(o);

         $this.hide();

         $this.next().show();

       }

</script>

搞定了...这样在前台还是比较美观的吧...

后台的逻辑有点复杂了..

首先你要判断是否有附件,如果没有,你就不能往数据库里面写入空值,如果数据库里本来有,现在用户没有修改附件,如果统一的往数据库里面写内容.则会覆盖..

我说下我的思路.

首先还是判断title,content是否为空.

如果不为空,判断是否有附件,如果有附件,我们就进行统一的接收操作.

if(IS_POST){

  $title = $_POST['title'];

  $content = $_POST['content'];

  if($title&&$content){

      //这里我们先定义一个数组..

     $data = array();

     if($_FILES['file']['name'])

        //开始对提交的附件进行处理.

       如果成功,则可以得到我们附件的名称和上传的地址等信息,看你需要什么

        如果失败的话

        返回错误.

         成功

         $data['filename'] = //文件名

         $data['filepath'] = //文件路径.

     }

  $arr = array(

        'title' => $title,

        'content' => $content

  );

if(!$_POST['id']){

  $flag = 进行插入操作..

  $type = "添加";

}else{

  $flag = 进行修改操作.

  $type = "修改";

}

   if($flag) $str = "成功";

   else      $str = "失败";

   $this->success($type.$str,//跳到列表路由中.);

  }

}//end of post.

 //下面是模板内容....