如何实现数据库同步读取

yidao2004 2004-05-04 04:29:44
1 表的结构如下

ID shopname shopsn other
1 aaa 10001 kkk
2 bbb 10002 zzz
3 ccc 10003 yyy

2 我想实现这样的功能:当读取商品的时候,商品的名字是一个下拉列表,如果选择了
aaa,后面的一个文本框里自动出现该商品的编号。

3 请高手赐教……
...全文
92 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
空闲独处 2004-05-05
  • 打赏
  • 举报
回复
你不是说你已经解决了吗?怎么又开了一帖?
文本框比下拉列表简单,把你原来的程序改一下就可以了
<select class="editbox" name="ShopName" onChange="document.all.ShopCode.value=this.value;">
<%
do while not rs.eof
%>
<option value="<%=trim(rs("Shopsn"))%>"><%=trim(rs("ShopName"))%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
<Input type="Text" name="ShopCode" Id="ShopCode" Value="">

只是改一下onChange="document.all.ShopCode.value=this.value;"
<option value="<%=trim(rs("ShopName"))%>">要改为<option value="<%=trim(rs("Shopsn"))%>">就可以了.
yidao2004 2004-05-05
  • 打赏
  • 举报
回复
我现在想的倒是如何把选择商品名称后所对应的值转递给一个文本框

也就是不是用第二个select,而是采用text
yidao2004 2004-05-04
  • 打赏
  • 举报
回复
我还是想通过动态实现

因为一般的二级以上类别管理也可以实现

但是那是2个表

我想一个表实现动态读取
空闲独处 2004-05-04
  • 打赏
  • 举报
回复
用数组有个问题,如果你的数据超过百条或千条那将是非常可怕的一件事情,所以用数组只能在你确定数据不会很多的情况下用.
其它连动选择最简单的做法就是在第一个<Select>里用Onchange="document.form1.submit();"
<select class="editbox" name="ShopName" onChange="document.form1.submit();">
第二个<Select>之前先Request.Form("ShopName")
If Request.Form("ShopName") <> "" Then selclass=Request.Form("ShopName")
因为你之前已经把初始值给selclass了,所以当第一个<Select>改变了,selclass就也变了,这样才是比较合理的二级连动.
另外帮你改一下上面的程序,不用那么复杂的
<select class="editbox" name="ShopCode">
<option value="" selected>商品代码</option>
<%
sql="select * from AllShop where ShopName='" & selclass & "'"
rs.open sql,conn,1,1
do while not rs.eof%>
<option value="<%=rs("ShopCode")%>"><%=rs("ShopCode")%></option>
<%
rs.movenext
loop
rs.close
%>
</select>

就可以了,不需要再加个IF的.

liuyangxuan 2004-05-04
  • 打赏
  • 举报
回复
将数据填充数组,
用数组动态填充文本框,
而不是动态读取数据库!
xylegend 2004-05-04
  • 打赏
  • 举报
回复
是啊,这样并不需要读取数据库实现啊
不过读取数据库的,不会
参考一下
yidao2004 2004-05-04
  • 打赏
  • 举报
回复
已经解决,利用数组控制来实现。因为是从数据库来实现的。所以我只给出源代码。

等我有时间写一个非数据库的,就可以看到实际效果

'=============二级联动选择的主程序
dim rs
dim sql
dim count
set rs=server.createobject("adodb.recordset")
sql = "select * from AllShop order by ShopID asc"
rs.open sql,conn,1,1
%>
<script language = "JavaScript">
var onecount;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs("ShopCode"))%>","<%= trim(rs("ShopName"))%>","<%= trim(rs("ShopCode"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;

function changelocation(locationid)
{
document.myform.ShopCode.length = 1;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.ShopCode.options[document.myform.ShopCode.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}

function loadForm()
{
editor.HtmlEdit.document.body.innerHTML=document.myform.Content.value;
return true
}
</script>

<table>
<tr>
<td>商品名称:
<%
set rs=server.createobject("adodb.recordset")
sql = "select * from AllShop"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write "请先添加商品。"
else
%>
<select class="editbox" name="ShopName" onChange="changelocation(document.myform.ShopName.options[document.myform.ShopName.selectedIndex].value)" size="1">
<option selected value="<%=trim(rs("ShopName"))%>"><%=trim(rs("ShopName"))%></option>
<%
dim selclass
selclass=rs("ShopName")
rs.movenext
do while not rs.eof
%>
<option value="<%=trim(rs("ShopName"))%>"><%=trim(rs("ShopName"))%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</select>
<select class="editbox" name="ShopCode">
<option value="" selected>商品代码</option>
<%
sql="select * from AllShop where ShopName='" & selclass & "'"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
%>
<option value="<%=rs("ShopCode")%>"><%=rs("ShopCode")%></option>
<% rs.movenext
do while not rs.eof%>
<option value="<%=rs("ShopCode")%>"><%=rs("ShopCode")%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</select>
</td>
</tr>
</table>


28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧