標籤: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.
//下面是模板內容....