程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 在同一個表單中添加和修改

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

編輯:關於PHP編程

大家寫網站的時候可能都會遇到這種情況,就是寫一個表單,這個表單是用來添加一篇文章的,我們屁顛屁顛的在後台接收數據,然後存入數據庫.現在有個問題.當你要對該文章進行修改的時候,你是怎麼處理的?

我的方法是在同一個表單中做文章,下面的例子是我用 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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved