介绍一个制作下拉菜单完全不同的办法
程序员文章站
2024-01-14 21:33:52
我是头一回知道这个方法,以前从没听用过,以前如果我从里读出内容来制作下拉菜单的话都是用循环来做的,现在,让我们来看一下老外的办法。利用recordset.getstring来制作动...
我是头一回知道这个方法,以前从没听用过,以前如果我从里读出内容来制作下拉菜单的话都是用循环来做的,现在,让我们来看一下老外的办法。
利用recordset.getstring来制作动态下拉菜单。
adodb.recordset的getstring方法有一些bug,但是你使用得小心一点的话它可以为您工作的很好。
先介绍一下getstring的用法……如下:
stringvalue = rsobject.getstring( format, numrows, columndelimiter, rowdelimiter, ifnull )
只要建立了rs对象,并且执行了相应操作,不管那是返回一条或者多条记录,甚至是空记录,getstring照样工作,但是如果不加注意的话,这个结果可能就不大好玩了,:p(这个老外也够幽默的)
format参数只有一个合法值,而且是可选的,让我们略过不管它,如果您想返回全部记录的话,那么那个numrows参数也可以不管它了(可选),ifnull……照我的理解就象tsql里的isnull函数差不多,如果是null,则随便搞个值替换它,所以也不管它。
剩下两个参数了。。。。不多说废话了,先看他们的例子
<table border=1>
<tr><td>
<% = response.write rs.getstring( , , "</td><td>", "</td></tr><tr>", ) %>
</table>
这样写的html结果如下:
<table border=1>
<tr>
<td>row1, field1 value</td>
<td>row1, field2 value</td>
</tr>
<tr>
<td>row2, field1 value</td>
<td>row2, field2 value</td>
</tr>
<tr>
</table>
这个也是老外口中说的那个bug了,让我们看一下具体怎么做的
<%
set rs = conn.execute("select thevalue,thetext from selectoptionstable order by thetext")
optsuffix = "</option>" & vbnewline
valprefix = "<option value="
valsuffix = ">"
opts = rs.getstring( , , valsuffix, optsuffix & valprefix, "--error--" )
next line is the key to it!
opts = left( opts, len(opts)-len(valprefix) )
response.write "<select ...>" & vbnewline
response.write valprefix & opts
response.write "</select>"
%>
你用过这种方法么,实话,我可从没见过,也没听有人说起,:(
附带一下,您如果想建立一个正确的表格的话,也就是我头上说的那个bug,只要这样做就可以了:
<%
set rs = conn.execute("select * from table")
tdsuffix = "</td>" & vbnewline & "<td>
trprefix = "<tr>" & vbnewline & "<td>"
trsuffix = "</td>" & vbnewline & "</tr>" & vbnewline & "<tr>" & vbnewline
opts = rs.getstring( , , tdsuffix, trsuffix & trprefix, "--error--" )
next line is the key to it!
opts = left( opts, len(opts)-len(trprefix) )
response.write "<table border=1 cellpadding=5>" & vbnewline
response.write trprefix & opts
response.write "</table>" & vbnewline
%>
------------------------------------------------------------------------
再介绍一个完全不同的办法。。。(我看了快昏倒)
<%
sql = "select <option value=,value,>,text,</option> from table order by text"
set rs = conn.execute(sql)
response.write "<select>" & vbnewline & rs.getstring(,,"",vbnewline) & "</select>"
%>
你用过吗。。。
看到了吗?可以直接从查询中返回结果。
再进一步,您可以这样做(access(小型网站之最爱)下我试过)
<%
sql = "select <option value= & value & > & text & </option> from table order by text"
利用recordset.getstring来制作动态下拉菜单。
adodb.recordset的getstring方法有一些bug,但是你使用得小心一点的话它可以为您工作的很好。
先介绍一下getstring的用法……如下:
stringvalue = rsobject.getstring( format, numrows, columndelimiter, rowdelimiter, ifnull )
只要建立了rs对象,并且执行了相应操作,不管那是返回一条或者多条记录,甚至是空记录,getstring照样工作,但是如果不加注意的话,这个结果可能就不大好玩了,:p(这个老外也够幽默的)
format参数只有一个合法值,而且是可选的,让我们略过不管它,如果您想返回全部记录的话,那么那个numrows参数也可以不管它了(可选),ifnull……照我的理解就象tsql里的isnull函数差不多,如果是null,则随便搞个值替换它,所以也不管它。
剩下两个参数了。。。。不多说废话了,先看他们的例子
<table border=1>
<tr><td>
<% = response.write rs.getstring( , , "</td><td>", "</td></tr><tr>", ) %>
</table>
这样写的html结果如下:
<table border=1>
<tr>
<td>row1, field1 value</td>
<td>row1, field2 value</td>
</tr>
<tr>
<td>row2, field1 value</td>
<td>row2, field2 value</td>
</tr>
<tr>
</table>
这个也是老外口中说的那个bug了,让我们看一下具体怎么做的
<%
set rs = conn.execute("select thevalue,thetext from selectoptionstable order by thetext")
optsuffix = "</option>" & vbnewline
valprefix = "<option value="
valsuffix = ">"
opts = rs.getstring( , , valsuffix, optsuffix & valprefix, "--error--" )
next line is the key to it!
opts = left( opts, len(opts)-len(valprefix) )
response.write "<select ...>" & vbnewline
response.write valprefix & opts
response.write "</select>"
%>
你用过这种方法么,实话,我可从没见过,也没听有人说起,:(
附带一下,您如果想建立一个正确的表格的话,也就是我头上说的那个bug,只要这样做就可以了:
<%
set rs = conn.execute("select * from table")
tdsuffix = "</td>" & vbnewline & "<td>
trprefix = "<tr>" & vbnewline & "<td>"
trsuffix = "</td>" & vbnewline & "</tr>" & vbnewline & "<tr>" & vbnewline
opts = rs.getstring( , , tdsuffix, trsuffix & trprefix, "--error--" )
next line is the key to it!
opts = left( opts, len(opts)-len(trprefix) )
response.write "<table border=1 cellpadding=5>" & vbnewline
response.write trprefix & opts
response.write "</table>" & vbnewline
%>
------------------------------------------------------------------------
再介绍一个完全不同的办法。。。(我看了快昏倒)
<%
sql = "select <option value=,value,>,text,</option> from table order by text"
set rs = conn.execute(sql)
response.write "<select>" & vbnewline & rs.getstring(,,"",vbnewline) & "</select>"
%>
你用过吗。。。
看到了吗?可以直接从查询中返回结果。
再进一步,您可以这样做(access(小型网站之最爱)下我试过)
<%
sql = "select <option value= & value & > & text & </option> from table order by text"