php 在同一個表單中添加和修改資料 二

來源:互聯網
上載者:User

標籤:php   表單   資料   

好吧,其實我這人不看重訪問量的,但是今天一天的訪問量比我去年發的一篇還要多.

我還是有點小小的驚訝的.作為一個做技術的屌絲.不,我不認為自己是屌絲,我覺得編程是一件高大山的職業.雖然很累,但是確實能讓你每天的生活很充實.

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.

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



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.