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

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

我的方法是在同一個表單中做文章,下面的例子是我用 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.



http://www.bkjia.com/PHPjc/777990.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/777990.htmlTechArticle大家寫網站的時候可能都會遇到這種情況,就是寫一個表單,這個表單是用來添加一篇文章的,我們屁顛屁顛的在後台接收資料,然後存入資料庫...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.