1. 程式人生 > >php 在同一個表單中新增和修改資料 二

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.

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


相關推薦

php同一個新增修改資料

好吧,其實我這人不看重訪問量的,但是今天一天的訪問量比我去年發的一篇還要多. 我還是有點小小的驚訝的.作為一個做技術的屌絲.不,我不認為自己是屌絲,我覺得程式設計是一件高大山的職業.雖然很累,但是確實能讓你每天的生活很充實. No matter whether you be

使用zTree在form提交修改回顯

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <

PHP常用的超全局變量 getpost提交方式的區別 session與cookie的區別 GD庫是做什麽用的

屬性 過程 生成報表 用戶訪問 服務器 接收 file pla request PHP中常用的超全局變量 $_GET ----->get傳送方式$_POST ----->post傳送方式$_REQUEST ----->可以接收到get和post兩種方式的值

解決elementUI資料新增修改資料混亂

需求是:初期化一個table列表,可以對table列表資料進行新增和修改,點選新增和修改時彈出窗體,窗體繫結的資料是form裡的Model,開始的時候點選新增是可以的,後臺獲取前臺的資料是沒有id主鍵的,但是當點選修改的時候,因為把主鍵id賦值給了form表單,導致點選新增後

【轉載】 Readonly Disabled 的區別

作用 .net 單元 ont 應該 表單元 als 利用 取數 今天寫代碼,遇到表單提交的問題,某個字段在不同的情況下,要傳遞不同的值進行賦值,試過一些方法都有些問題,後來請教前端同學,使用 disabled 這個屬性終於搞定了問題,查到一篇講解 readonly 和 di

formgetpost兩種提交方式的區別

name bsp inpu get div post input 普通 表單 一、form表單中get和post兩種提交方式的區別?   1.get提交表單中的內容在鏈接處是可見的。post不可見   2.post相比於get是安全的   3.post不收限制大小,get有

servletgetpost方法的區別

pos span 轉化 不可見 上傳文件 post div font 支持 Form中的get和post方法,在數據傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者主要區別如下:1、Get是用來從服務器上獲得數據,而Post是用來向服務器上傳遞數據。2、Get

使用JQuery 動態新增刪除行

function addvotesub() {var name=rownum;var VOTESUBSN = '<td style="text-align:center;"><input class="votesubsn" style="width:35px;" maxlength="6"

Layui同一個放置兩個按鈕,提交問題

 今天做專案遇到了這個問題,看到layui社群有人問,但沒有答案,自己就想了一個辦法: 原理:用兩個按鈕,一個按鈕設定提交方式為Post,一個為Get,這樣你就可以通過控制器端不同的接受請求方式,來實現不同的業務 核心程式碼如下: 頁面上預設寫寫post請求: 第一個

php接收有大陣列存在時的問題

最近在做專案時,表單中提交了一個超大的陣列(陣列元素的個數超過1000),結果陣列資料總是會有丟失,最後百度了下,看到了高人的解答,原來從php5.3之後,php為了安全性,限制了表單提交欄位的數量,也就是php.ini配置檔案中max_input_vars 引數 ,預設的

ReadonlyDisabled的區別

兩種屬性的寫法如下:<input type="text" name="name" value="xxx" disabled /><input type="text" name="name" value="xxx" readonly />這兩種寫法都會使顯

PHP資料寫入到EXCEL

 if($name!=null){ try{ date_default_timezone_set('Etc/GMT-8'); //這裡設定了時區 $time= date("Y-m-d H:i:s"); $fp = fopen("data.

Spring Security在標準登入新增一個額外的欄位

概述 在本文中,我們將通過向標準登入表單新增額外欄位來實現Spring Security的自定義身份驗證方案。 我們將重點關注兩種不同的方法,以展示框架的多功能性以及我們可以使用它的靈活方式。 我們的第一種方法是一個簡單的解決方案,專注於重用現有的核心Spring Security實現。 我們的第二種方法是更

html5新增控制元件屬性

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <ti

的添加,新增數據-測試思考點

nbsp es2017 src 新增 http ges 9.png 測試 alt 表單中的添加,新增數據-測試思考點

php - 驗證郵件URL

通過 image all e-mail translate view 進行 pattern log PHP - 驗證名稱 以下代碼將通過簡單的方式來檢測 name 字段是否包含字母和空格,如果 name 字段值不合法,將輸出錯誤信息: $name =

Restful風格,PUT修改功能請求,存在文件報錯-HTTP Status 405 - Request method 'POST' not supported

for 文件的 文件 roo spring commons 容量 put common 解決方案配置如下 <!-- 配置文件上傳解析器 --> <bean id="multipartResolver" class="org.spri

js 監測from的inputselect,時時監測,沒有輸入或選擇信息報錯,不允許提交數據

height ssss txt input OS 表達 tip eight html 1.html 代碼為 在input和select同級元素中添加 .error的標簽,用來存放報錯信息 <form action="" method="post" enctype="

html的name屬性value屬性

標簽 put -s tex 什麽 input 例子 htm use 舉例: 比如<input type="text" name=" username" value="aa">女孩 在這個例子中value究竟有什麽用啊,後面都寫了女孩了,顯示的內容一定是女孩 女孩

html5新增控件屬性

tps 特性 普通 mit form表單 pan 頁面 inpu data 新的輸入性表單控件: email:電子郵箱文本框,跟普通的沒什麽區別 - 當輸入不是郵箱的時候,驗證不通過 - 移動端的鍵盤會發生變化 tel:電話號碼 url:網頁