注意:smarty模板前提是:前端和后端是分開的,所以肯定會有很多的后臺頁面,php頁面和html頁面是分開存儲的!!
可以通過模板編寫很多的功能,這里不是用的ajax方法寫的,所以會刷新頁面~~
下面就開始編寫各種頁面的功能了!!!
一、登錄頁面的編寫也是分兩個頁面(后臺和前端)
1.首先是后臺的php頁面,很簡單只要引入“入口文件”,然后寫出顯示模板的方法就可以了。
1
2
3
4
|
<?php include ( "../init.inc.php" ); //引入入口文件 $smarty ->display( "login.html" ); //要顯示的登錄界面 |
2.再就是前臺的html頁面,這個就是要寫登錄界面要顯示的內容了。
1
2
3
4
5
6
|
< h1 >登錄頁面</ h1 > < form action="logincl.php" method="post"> <!--表單元素中的活動頁面,登陸的處理頁面,傳輸方式是post方式--> < div >用戶名:< input type="text" name="uid"/></ div > <!--用戶名文本框--> < div >密 碼:< input type="password" name="pwd"/></ div > <!--密碼文本框--> < input type="submit" value="登錄" /> <!--登錄按鈕--> </ form > |
看下運行效果(一定要運行php頁面才可以)
3.頁面出來了,再就是表單的提交處理頁面,這個是相對于前面的php頁面的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?php include ( "../DBDA.class.php" ); //調用出來封裝好的類 $db = new DBDA(); //造新對象 $uid = $_POST [ "uid" ]; //接收傳過來的數據 $pwd = $_POST [ "pwd" ]; $sql = "select password from user where uid='{$uid}' " ; //編寫語句查找用戶名是傳過來的用戶名的密碼 $attr = $db ->StrQuery( $sql ); //執行語句 if ( $attr == $pwd && ! empty ( $pwd )) //判斷一下 { header( "location:main.php" ); //如果登陸成功就可以,就會跳到主頁面 } |
4.登錄成功后的顯示頁面,我這里是顯示出來的數據庫中的內容
4.1后臺頁面的編寫,其實和上一篇隨筆是一樣的,調出數據庫并且注冊變量和模板顯示的方法
1
2
3
4
5
6
7
8
9
10
11
|
<?php include ( "../init.inc.php" ); //調出入口文件 include ( "../DBDA.class.php" ); //調出數據庫封裝好的類 $db = new DBDA(); //造新對象 $sql = "select * from nation" ; //查找數據庫中的數據信息 $attr = $db ->Query( $sql ); //執行語句 $smarty ->assign( "shuju" , $attr ); //注冊變量信息 $smarty ->display( "main.html" ); //模板顯示 |
4.2前臺html頁面的編寫,利用表的樣式顯示出想要顯示的信息數據
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
< h1 >主頁面</ h1 > < table width="50%" border="1" cellpadding="0" cellspacing="0"> < tr > < td >代號</ td > <!--表中的頭信息--> < td >名稱</ td > < td >操作</ td > </ tr > <{foreach $shuju as $v}> <!--遍歷php頁面的數據顯示--> < tr > < td ><{$v[0]}></ td > <!--代號所指的數據庫信息--> < td ><{$v[1]}></ td > < td >操作</ td > </ tr > <{/foreach}> </ table > |
運行結果可以看下
二、信息的相關操作(刪除功能)
1.那么就要main的html頁面中遍歷信息中的“操作”就要修改成“刪除”了,這里的傳數據的方式就是“get”方式了,如下:
1
2
3
4
5
6
7
|
<{foreach $shuju as $v}> < tr > < td ><{$v[0]}></ td > < td ><{$v[1]}></ td > < td >< a href="shanchu.php?code=<{$v[0]}>">刪除</ a ></ td > </ tr > <{/foreach}> |
那么運行出來的“操作”的那一欄就會變成了“刪除”了
2.前臺的頁面解決之后,那就是刪除的處理頁面了,記得要和php頁面放在一起
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php include ( "../DBDA.class.php" ); //調用封裝好的數據庫類 $db = new DBDA(); //造新對象 $code = $_GET [ "code" ]; //用get方式接收傳過來的數據 $sql = "delete from nation where code='$code' " ; //刪除代號等于傳過來得代號的數據 $attr = $db ->Query( $sql ,0); //執行語句 if ( $attr ) //判斷一下,成功刷新,不成功提示 { header( "location:main.php" ); } else { echo "刪除失敗!" ; } |
可以看下運行結果
單擊“刪除”按鈕后,就會將那條信息刪除
三、信息的相關操作(修改功能)
1.同樣的main的html頁面中遍歷信息中的添加一個“修改”按鈕,這里的傳數據的方式同時也是“get”方式了,如下:
1
2
3
4
5
6
7
8
9
|
<{foreach $shuju as $v}> < tr > < td ><{$v[0]}></ td > < td ><{$v[1]}></ td > < td >< a href="shanchu.php?code=<{$v[0]}>">刪除</ a > < a href="xiugai.php?code=<{$v[0]}>">修改</ a > </ td > </ tr > <{/foreach}> |
前端的頁面就成了如下頁面
2.同樣也是開始編寫“修改”的頁面了,這里要顯示修改的原來的信息,這樣就是要用到正常的顯示頁面,那么就是兩個頁面了(php頁面和html頁面)
2.1修改的php頁面的編寫
1
2
3
4
5
6
7
8
9
10
11
|
<?php include ( "../init.inc.php" ); //調出入口文件 include ( "../DBDA.class.php" ); //調出數據庫封裝好的類 $db = new DBDA(); //造新對象 $code = $_GET [ "code" ]; $sql = "select * from nation where code='$code' " ; //查詢代號等于傳過來代號的信息 $attr = $db ->Query( $sql ); $smarty ->assign( "nation" , $attr [0]); //注冊變量信息,順便將值傳過去 $smarty ->display( "xiugai.html" ); //顯示模板 |
2.2修改的html頁面的編寫
1
2
3
4
5
6
|
< h1 >修改頁面</ h1 > < form action="xiugaicl.php" method="post"> <!--修改頁面的處理頁面--> < input type="hidden" name="code" value="<{$nation[0]}>"/> <!--默認值顯示的時候就是要將傳過來的值顯示value,但是這里的代號是不能改的,所以要隱藏--> < div >名稱:< input type="text" name="name" value="<{$nation[1]}>"/></ div > <!--同上面的結束--> < input type="submit" value="修改" /> </ form > |
單擊“修改”按鈕后,看下運行的頁面
為了不想修改返回到主頁面,可以在修改后面添加一個“返回”按鈕
1
2
|
< input type="submit" value="修改" /> < a href="main.php">< input type="button" value="返回" /></ a > |
3.單擊修改后,進行信息的修改,數據庫也要進行修改(編寫“修改”的處理頁面)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php include ( "../DBDA.class.php" ); //調出數據庫封裝好的類 $db = new DBDA(); //造新對象 $code = $_POST [ "code" ]; //將代號傳過來接收 $name = $_POST [ "name" ]; //同上 $sql = "update nation set name='{$name}' where code='{$code}'" ; //修改名稱當代號等于傳過來的代號時 $attr = $db ->Query( $sql ,0); //執行語句 if ( $attr ) //判斷一下語句 { header( "location:main.php" ); //修改成功后返回主頁面 } else { echo "修改失敗!" ; } |
運行看下整體修改過程
(1)登陸后的主頁面
(2)單擊修改按鈕
(3)修改后單擊修改按鈕,不修改單擊返回按鈕
(4)數據庫也跟著修改了
到此,基本的功能就結束了,這是用的php寫的,也可以讓它不刷新頁面進行刪除和修改功能,同樣的道理。
文章列表