新聞中心
最近很多同學(xué)在學(xué)習(xí)的過程中遇到了亂碼問題。這很可能是因為大家疏忽了頁面編碼的問題。中文版的dreamweaver默認新建頁面是gb2312編碼格式,而我們用到的是utf-8格式。所以在編碼之間產(chǎn)生了沖突。
PS:第二章:文章管理系統(tǒng)【1】- 創(chuàng)建欄目(2)中提到過編碼修改為utf-8。
那如何解決這個問題呢?我們可以先在dw的菜單欄中選擇編輯>選擇參數(shù)進入設(shè)置頁面,選擇新建頁面,選擇默認編碼為utf-8并保存,以后創(chuàng)建的所有頁面都會已utf-8格式創(chuàng)建。
創(chuàng)建頁面之后可以看到默認代碼中有如下代碼:
我們只需要把如下代碼復(fù)制粘貼到已創(chuàng)建的所有界面,保存一次就可以解決舊頁面亂碼的問題。
修改欄目其實和創(chuàng)建欄目是差不多的。可以區(qū)別成創(chuàng)建欄目是提交一個新的數(shù)據(jù)到數(shù)據(jù)庫,修改欄目是對已有的數(shù)據(jù)編輯重新提交。
要對已有的數(shù)據(jù)進行編輯,首先要把已有的數(shù)據(jù)讀出來并在編輯頁面中顯示出來。
第一步就是要先告訴編輯頁面category_edit.php,我們需要讀出來的是具體哪一條數(shù)據(jù)。
那如何告訴編輯頁面具體是哪條數(shù)據(jù)呢?這時候就要用到我們的cat_id字段了,當(dāng)然通過其他字段也可以實現(xiàn)。只不過cat_id這個字段是絕對不會重復(fù)的字段所以用這個字段是最保守的。
首先打開category_list.php頁面,我們在上一節(jié)中已經(jīng)準(zhǔn)備好了進入修改頁面的鏈接,其href的地址是?act=edit。
我們在鏈接地址后方加上&cat_id=$r[cat_id],改成?act=edit&cat_id=$r[cat_id]。
我們之前講到過在鏈接地址后方加問號“?”,后面可以跟上參數(shù)。當(dāng)我們需要跟上多個參數(shù)的時候,在每個參數(shù)和參數(shù)值之間要用符號“&”來連接,就是鍵盤數(shù)字7上方的and符號。
保存好之后回到頁面把鼠標(biāo)放在修改按鈕上方可以在瀏覽器左下方看到對應(yīng)的連接地址后面多出來了cat_id=1這樣的結(jié)果。$r[cat_id]在上一節(jié)中已經(jīng)用到過了就不再重復(fù)敘述了。
現(xiàn)在我們打開category_edit.php頁面,代碼改成如下:
第5、第6行與上一節(jié)課程學(xué)習(xí)到的內(nèi)容大同小異,唯一的區(qū)別是SELECT * FROM 后面多出來了where cat_id=$_GET[cat_id]。
這是我們通過mysql語句查詢數(shù)據(jù)庫獲得結(jié)果集的時候指定條件的方法,where的后面cat_id=$_GET[cat_id]就是我們的查詢條件。
$_GET[cat_id]當(dāng)然就是通過上面的鏈接?act=edit&cat_id=1格式點進來之后從url地址中獲取參數(shù)cat_id的值。
我們在這里沒有用到while循環(huán),而把$r=mysql_fetch_array($category); 直接寫到了外面,這是因為我們在第5行的查詢代碼中已經(jīng)指定了條件,所以獲取到的代碼集里只會有一個結(jié)果,我們只需要把這個唯一的結(jié)果轉(zhuǎn)換成數(shù)組的形式就可以,轉(zhuǎn)換成數(shù)組保存到變量$r之后我們就可以通過$r[cat_name]這種格式輸出出來了。我們把$r[cat_name]寫在了value中,目的是為了讓文本框顯示一個默認的值,當(dāng)然你不去顯示這個默認值我們也是可以正常修改欄目的。
另外form的action部分變成了act=update&cat_id=$r[cat_id],act=update跟我們之前學(xué)過的提交頁面中的act=insert是一樣的道理,目的是為了提交之后執(zhí)行對應(yīng)的數(shù)據(jù)庫指令。后面跟上了cat_id=$r[cat_id]是為了提交之后告訴我們下一個需要執(zhí)行update的頁面我們提交的是哪一條欄目。
我們點擊修改按鈕進入對應(yīng)欄目的修改頁面可以看到如下結(jié)果:
我們所需要修改的欄目名稱已經(jīng)可以正確顯示出來了。
下一步就是需要把這個頁面修改的內(nèi)容重新提交到數(shù)據(jù)庫中。打開category.php頁面在代碼include(‘category_edit.php’);下方增加如下代碼:
基本跟創(chuàng)建欄目差不多,區(qū)別是mysql_query部分,我們通過“UPDATE 表名 SET 字段名=’更新值’ WEHRE 條件”的方式更新了數(shù)據(jù)表category中對應(yīng)cat_id的數(shù)據(jù)。
修改欄目的功能就這樣就做好了。是不是灰常的簡單?
下面把刪除欄目的功能也一塊講了吧,也灰常簡單!
打開category_list.php頁面把a href=”?act=del”部分改成如下代碼:
href中的?act=del&cat_id=$r[cat_id],我相信不用我再解釋大家也能猜到了。
這里多了個onclick=””,onclick是HTML中的鼠標(biāo)點擊事件,但鼠標(biāo)點擊該鏈接的時候執(zhí)行引號中的javascript語句。在點擊事件中寫javascript代碼的時候不需要在前后加上script和/script。通過該javascript代碼返回一個confirm確認提示,提示是否需要刪除對應(yīng)的欄目。
像執(zhí)行刪除這種不可挽回的操作的時候,我們在交互上需要把一步操作變成兩步操作。蘋果手機中左滑刪除是一樣的道理,用先左滑再刪除的方式變成了2步操作。
保存好之后點擊刪除按鈕可以看到如下提示:
現(xiàn)在就差在category.php頁面里增加act=del的時候需要執(zhí)行的語句。在上面增加的修改代碼部分的下面增加如下代碼。
很簡單,DELETE FROM 表名 WHERE 條件,就可以在表中刪掉條件符合的數(shù)據(jù)了。
可能大家都聽程序猿同學(xué)們說過增刪改查,到這個階段我們就算是把最基本的增刪改查都學(xué)完了,以及條件語句和循環(huán)語句。
作業(yè):通過“UPDATE 表名 SET”指令我們可以同時修改多個字段,格式如下:
UPDATE 表名 SET 字段名=”,字段名=”,字段名=” WHERE 條件
請在自己的欄目表里增加如備注 :之類的自定義字段,發(fā)布之后嘗試同時與名稱一起修改試試。
文章標(biāo)題:寫給產(chǎn)品經(jīng)理及UI的PHP教程丨文章管理系統(tǒng)修改&刪除欄目
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/cjeids.html