表單元素要放在一個(gè)表單域里面,建立一個(gè)表單域。然后修改動(dòng)作里面的文件為要接受這個(gè)表單變量的ASP文件。方法有兩種,一種是POST,這個(gè)方法傳送的變量不會(huì)在瀏覽器的地址欄里面顯示,可以大批量傳送數(shù)據(jù);GET則是會(huì)在瀏覽器地址欄里面顯示的,等一會(huì)舉例子。
下面我們來一個(gè)一個(gè)看表單元素。1、文本域,這個(gè)是最基本的,傳送的是文本信息,一般用戶名,密碼都要用這個(gè)傳送,不過要是密碼的話要在類型里面選擇密碼,這樣就會(huì)以*代替顯示出來的字符,文本域的名字很重要,以后會(huì)用到這個(gè)名字所以一般不用默認(rèn)的名字?,F(xiàn)在舉一個(gè)例子:如果文本域的名字是name的話,用來傳送網(wǎng)上用戶登記的名字,在表單域里面,傳送到reg.asp,用POST方法,那么在reg.asp里面這樣得到變量<%name=request.form("name")%>如果要顯示變量再家加一句,response.write name,這樣就形成了一個(gè)從客戶端到瀏覽器再回到客戶端的過程。如果方法用的是GET的話,那么就改為name=request.querystring("name")實(shí)際上兩者可以統(tǒng)一為name=request("name")。下面看看按鈕,按鈕里面無非兩種,一種是提交表單的按鈕,一種是重新輸入的按鈕。單選按鈕,一個(gè)按鈕有一個(gè)值。在列表里面同樣,添加列表選項(xiàng)和值。下面舉一個(gè)例子,實(shí)際上各種表單元素都是差不多的。下面是DREAMWEAVER里面的代碼:
<form name="form1" method="post" action="reg.asp">
姓名:
<input type="text" name="name"> //文本域,名字叫name
<br>
密碼:
<input type="password" name="psw"> //文本域,用來輸入密碼,名字叫psw
<br>
<br>
性別:
<input type="radio" name="sex" value="男"> //單選,名字叫sex,數(shù)值是"男"
男
<input type="radio" name="sex" value="女"> //單選,名字叫sex,數(shù)值是"女"
女 <br>
<br>
城市:
<select name="city">
<option value="上海" selected>上海</option> //復(fù)選,大家自己分析一下
<option value="北京">北京</option>
</select>
<br>
<input type="submit" name="Submit" value="提交"> //提交按鈕
<input type="reset" name="Submit2" value="重置">
</form>
下面是reg.asp的代碼,用來顯示出剛才受到的信息:
<%
name=request.form("name")
psw=request.form("psw")
sex=request.form("sex")
city=request.form("city")
response.write name
response.write psw
response.write sex
response.write city
%>
學(xué)習(xí)目的:學(xué)會(huì)數(shù)據(jù)庫的基本操作2(查詢記錄)
在第四天中我們有這樣一個(gè)程序:
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
exec="select * from guestbook"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
我們查詢的是所有的記錄,但是我們要修改、刪除記錄的時(shí)候不可能是所有記錄,所有我們要學(xué)習(xí)檢索合適的記錄。先看一條語句:
a="張三"
b=111
exec="select * from guestbook where name=‘"+a+"‘a(chǎn)nd tel="+b
where后面加上的是條件,與是and,或是or,我想=,<=,>=,<,>的含義大家都知道吧。這句話的意思就是搜索name是張三的,并且電話是111的記錄。還有一點(diǎn)就是如果要搜索一個(gè)字段里面是不是包含一個(gè)字符串就可以這么寫:where instr(name,a)也就是搜索name里面有a(張三)這個(gè)字符串的人。
我這里的a,b,是常量,大家可以讓a,b是表單提交過來的變量,這樣就可以做一個(gè)搜索了。
下面大家看看這個(gè)代碼,理解一下:
<form name="form1" method="post" action="example6.asp">
搜索:<br>
name =
<input type="text" name="name">
and tel=
<input type="text" name="tel">
<br>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
</form>
example6.asp:
<%
name=request.form("name")
tel=request.form("tel")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
exec="select * from guestbook where name=‘"+name+"‘ and tel="+tel
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
<html>
<head>
<title>無標(biāo)題文檔</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%
do while not rs.eof
%><tr>
<td><%=rs("name")%></td>
<td><%=rs("tel")%></td>
<td><%=rs("message")%></td>
<td><%=rs("time")%></td>
</tr>
<%
rs.movenext
loop
%>
</table>
</body>
</html>
今天實(shí)際上就講了一個(gè)where,大家回去做做試驗(yàn),把instr()做進(jìn)去,明天見!
十天學(xué)會(huì)ASP之第七天
學(xué)習(xí)目的:學(xué)會(huì)數(shù)據(jù)庫的基本操作3(刪除記錄)
開門見山,大家直接看程序。
exec="delete * from guestbook where id="&request.form("id")
上面這句話完成了刪除記錄的操作,不過鎖定記錄用了記錄唯一的表示id,我們前面建立數(shù)據(jù)庫的時(shí)候用的是系統(tǒng)給我們的主鍵,名字是編號(hào),由于是中文的名字不是很方便,大家可以修改為id,不修改的話就是
exec="delete * from guestbook where 編號(hào)="&request.form("id")
下面我們看完整的代碼:一個(gè)表單傳給ASP文件一個(gè)ID,然后這個(gè)ASP文件就刪除了這個(gè)ID。
<form name="form1" method="post" action="example7.asp">
delete:
<input type="text" name="id">
<input type="submit" name="Submit" value="提交">
</form>
example7.asp:
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
exec="delete * from guestbook where 編號(hào)="&request.form("id")
conn.execute exec
%>
我在示例里面加了一個(gè)example72.asp,和example4.asp差不多,就是加了一個(gè)id字段,大家可以先運(yùn)行這個(gè)文件看一下所有記錄的ID和想刪除記錄的ID,刪除記錄以后也可以通過這個(gè)文件復(fù)查。等到最后一天,我們會(huì)把所有的這些東西整合的。大家就不會(huì)需要這么麻煩的操作。
example72.asp:
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
exec="select * from guestbook"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
<html>
<head>
<title>無標(biāo)題文檔</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
學(xué)習(xí)目的:基本的SESSION組件,總結(jié)response,request組件。
首先,有會(huì)員系統(tǒng)的任何程序都會(huì)用到檢測是不是用戶已經(jīng)登陸這個(gè)步驟。這就用到了SESSION組件,下面我們 看一個(gè)代碼來說明。
<%
session("islogin")="yes"
%>
這句話的意思就是在session里面定義一個(gè)islogin字符串變量,值為"yes",直接可以賦值,不需要聲明。是不是很簡單?
如果我們做管理員登陸系統(tǒng)的話,首先是一段檢測是不是管理員
if 是 then
session("isadmin")=yes"
else
session("isadmin")="no"
end if
在每一個(gè)需要管理員才能看的頁面最前面加上
<%
if not session("isaadmin")="yes"then
response.redirect "login.htm"
%>
這樣一般用戶就無法打開這個(gè)頁面。解釋一下response.redirect,它是轉(zhuǎn)向的意思,后面的"login.htm"就是轉(zhuǎn)向的文件。這樣沒有登陸的管理員是無法看到后面的內(nèi)容的。
下面總結(jié)一下response組件基本就是用到response.write (),response.redirect() 分別是寫字符串和轉(zhuǎn)向的作用request基本就是request.form(),request.querystring() 分別是接受post,get方法傳來的信息今天就說到這里了,最后我的示范是一個(gè)登陸系統(tǒng)大家可以研究一下,基本就是上面的知識(shí)點(diǎn)比較簡單的。
十天學(xué)會(huì)ASP之第十天
學(xué)習(xí)目的:分頁技術(shù),總結(jié)
今天最后一天我們學(xué)習(xí)一下ASP里面稍微難一點(diǎn)地分頁技術(shù),畢竟當(dāng)我們有N條記錄的時(shí)候我們不可能把所有記錄顯示在一個(gè)頁面里面吧。
<%
exec="select * from test"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
rs.PageSize=3
pagecount=rs.PageCount
page=int(request.QueryString ("page"))
if page<=0 then page=1
if request.QueryString("page")="" then page=1
rs.AbsolutePage=page
%>
rs.pagesize設(shè)置一個(gè)頁面里面顯示的記錄數(shù),pagecount是我們自己定義的一個(gè)變量,rs.pagecount是記錄的個(gè)數(shù),page也是我們自己定義的一個(gè)變量,我們下一頁的鏈接可以設(shè)置為list.asp?page=<%=page+1%>,下一頁的鏈接可以設(shè)置為list.asp?page=<%=page-1%>,這樣當(dāng)按下鏈接的時(shí)候調(diào)用頁面自己,page這個(gè)變量就+1或者-1了,最后我們讓rs.absolutepage(當(dāng)前頁面)為第page頁就可以了。
if request.QueryString("page")="" then page=1,這句話的作用就是我們打開list.asp的時(shí)候沒有跟隨page變量,自動(dòng)設(shè)置為page=1,防止出錯(cuò),還有當(dāng)我們if....then...放在一行的時(shí)候end if可以省略。是不是分頁也不難?
下面說一種特殊情況:
if page=1 and not page=pagecount,這個(gè)時(shí)候沒有上一頁,但是有下一頁
elseif page=pagecount and not page=1,這個(gè)時(shí)候沒有下一頁,但是有上一頁
elseif page<1,這個(gè)時(shí)候沒有任何記錄
elseif page>pagecount then,這個(gè)時(shí)候沒有任何記錄
elseif page=1 and page=pagecount,這個(gè)時(shí)候沒有上一頁,沒有下一頁
else,這個(gè)時(shí)候有上一頁,也有下一頁。
下面看一段顯示1到n頁,且每一個(gè)數(shù)字點(diǎn)擊以后就出現(xiàn)這個(gè)數(shù)在代表的頁面的代碼,很常見哦。
<%for i=1 to pagecount%>
<a href="list.asp?page=<%=i%>"><%=i%></a><%next%>
for....next是循環(huán)從i=1開始,循環(huán)一次加1到pagecount為止。
最后我的實(shí)例里面包含了一個(gè)最簡單的ASP程序,但是功能樣樣有,是ASP的精髓,每一個(gè)ASP大型程序都包含了它。
add.htm增加記錄頁面
add.asp增加記錄操作
conn.asp數(shù)據(jù)庫鏈接
del.asp刪除記錄操作
modify.asp修改記錄頁面
modifysave.asp修改記錄操作
list.asp這個(gè)是這個(gè)程序的核心,通過這個(gè)頁面實(shí)現(xiàn)記錄的添加、修改、刪除。
test.mdb數(shù)據(jù)庫,里面有aa,bb兩個(gè)字段:aa數(shù)字型只能接受數(shù)字,bb是字符型。
好了,十天到今天就結(jié)束了,我想我這個(gè)教程是讓大家入門的,大家覺得寫的淺也不要責(zé)怪必盡不可能初學(xué)者和高手都照顧到吧,最后我想說一句,今天的實(shí)例是ASP的精華,大家一定要好好研究,通了這個(gè)程序,你會(huì)發(fā)現(xiàn)你已經(jīng)會(huì)ASP了。謝謝大家的支持!
聯(lián)系客服