在ASP下实现像网易发短信息的选择电话本的功能?

beret 2002-01-08 02:25:41
公司要用ASP做一个类似网易发手机短信息的选择电话本的功能,具体情况我不太会描述,我想大家也应该也在网上发过信息,想问问到底怎么才能实现这样的功能。也就是跟下面的差不多。有位beyond_xiruo(希偌)回应过了。但不是我要的那种。希望有朋友能帮小弟解决问题,最好有详细解答,谢谢!

主  题:关于select下拉菜单显示数据库内容的问题
作  者:beret
所属论坛:ASP
问题点数:20
回复次数:1
发表时间:2002-1-8 11:34:12


具体情况如下:先说表结构吧。

-----------------------------------------
id(自增量) menu1 menu2 content

1 A A君 1111
2 B B君 2222
3 C C君 3333
4 A D君 4444

-----------------------------------------

在相同页面有两个select下拉菜单,菜单一(menu1)访问数据库里的menu1列,菜单二(menu2)根据菜单一的条件再访问数据库里的menu2列.

举个例子:当选择“菜单一”的“A”时,“菜单二”会即时相应显示出“A君”,然后再将相应记录“conent”里的值赋到“菜单二”。还有一样的就是菜单一和菜单二会有多条记录的。希望能详细具体解答,谢谢!
...全文
155 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
nclyj 2002-01-14
  • 打赏
  • 举报
回复
数据驿站有短信发送ASP程序,含组件,并有演示程序,大家可以下载放在自己的网站上使用
http://www.dbstep.com 产品信息栏里的iMobile短信发送
beret 2002-01-09
  • 打赏
  • 举报
回复
我昨晚才发现的。。唉。。。所以还是不行。。现在只有看你的了。。呵。。呵。。。
tttk 2002-01-09
  • 打赏
  • 举报
回复
但是,beret,你注意到没有,采用mkiss的方法每次都要重新提交页面的(submit),这就存在两个缺点喔:
1、如果表单页面上有用户输入的其它信息,重新提交后将~~拜拜~~
2、对于网络速度比较慢的用户,呵呵,想想他们的感受吧

仅供参考。
beret 2002-01-08
  • 打赏
  • 举报
回复
To:tttk(要做就做最好)。。呵。。呵。。真不好意思。。因为mkiss(小kiss)先帮我解决了。。所以我把多数的分数都给他啦。。不过在这里还是要谢谢你们。。以后有问题了希望你们还可以帮我解决。。最好当然是自己解决啦。。。  
mkiss 2002-01-08
  • 打赏
  • 举报
回复
直接解决问题就行,这里的人不需要别的,就是解决问题的答案!^_^
tttk 2002-01-08
  • 打赏
  • 举报
回复
不过,呵呵,我只得到10分,心里很不平衡哦。
tttk 2002-01-08
  • 打赏
  • 举报
回复
我们就以网易的电话本为例,给你说明这个例程执行的过程:
流程:从一个下拉列表中选择电话本条目,在另一个下拉列表中立即显示出与该条目相关的所有人员名单。

这里的技巧就在于数组的巧妙设置。
我们来看一下这两个下拉列表之间的数据在数据库中的关系,那就是,电话簿中的每一个人员名单必须对应一个组名,我们假设组的编号叫做gid,人员的编号叫做sid,毫无疑问,gid和sid之间是1对多的关系。先明白这一点,接下来,把数据以以下这种格式导出为javascript数组定义:

1、组数组 gMenu,用来包含所有的组信息
格式:gMenu(gid, 组名)
2、电话簿数组 sMenu,用来包含所有的电话号码信息
格式:sMenu(sid, gid,人员姓名, 电话号码) --这里的gid和上面的gid对应起来

根据上面的结构,通过asp程序生成以下代码,相信你知道怎么做。
<script lanauage="javascript">
...
var gMenu = new Array();
gMenu[0] = new Array(gid1, 组名1);
gMenu[1] = new Array(gid2, 组名2);
...
var sMenu = new Array();
sMenu[0] = new Array(sid1, gid??, 姓名1, 电话号码1);
sMenu[1] = new Array(sid2, gid??, 姓名2,电话号码2);
...
//注意,我这里的gid??表示根据实际数据来定。
...
</script>
//以下的script代码用来控制数组,请认真揣摩
<script language="javascript">
//参数说明:
//arrSub, 数组名称,即根据此数组生成菜单,需要利用上面产生的数组
//pValue, 父结点id,根据此id来决定显示哪些数据,0表示显示第一项;
//cValue, 当前显示id,根据此id来决定在过滤出的数据中那一项是当前项,0表示显示第一项;
//name, 菜单名称
//bulSkip, 菜单的第一项是否显示"<未选择>",1表示显示,0表示不显示
function MakeMenu(arrSub, pValue, cValue, name, bulSkip){
var sHTML = "<select name='" + name + "' onchange='SetSubMenu(this)' class='input_apply140px'>";
if (bulSkip) sHTML += "<option value=0><未选择></option>";
for (var i=0; i < arrSub.length; i++){
if (arrSub[i][0]==pValue){
var tag = (arrSub[i][1]==cValue)?" selected>":">";
sHTML += "<option value='" + arrSub[i][1] + "'" + tag + arrSub[i][2] + "</option>";
}
}
sHTML += "</select>";
return sHTML;
}
//此函数取得指定的菜单显示值
function GetSelectValue(oSelect){
if (oSelect.selectedIndex < 0) return 0;
return oSelect.options(oSelect.selectedIndex).value;
}
//此函数取得指定对象的指定父对象
function GetParent(src, tag){
if (src && src.tagName!=tag){
return(GetParent(src.parentElement, tag));
}
return src;
}
//此函数设置子菜单项目
function SetSubMenu(pSelect){
var oOption, sValue

if (pSelect.selectedIndex < 0) return;
switch (pSelect.name){
case "s0":
var TD = GetParent(document.all("s1"), "TD"); //假设s1表示人员选单的select对象名称
TD.innerHTML = MakeMenu(arrMenu1, GetSelectValue(pSelect), "1", "s1", 0);
break;
default:
}
}

//此函数初始化菜单
//s0表示电话分组的Select对象的名称
function body_onload(){
TD = GetParent(document.all("s0"), "TD");
TD.innerHTML = MakeMenu(gMenu, 0, 0, "s0", 1);
TD = GetParent(document.all("s1"), "TD");
TD.innerHTML = MakeMenu(sMenu, GetSelectValue(document.all("s0")), 0, "s1", 1);
}
</script>
<body bgcolor="#FFFFFF" onload="body_onload()">
...
<td>
<select name="s0" onchange="SetSubMenu(this)"></select>
</td>
<td>
<select name="s1"></select>
</td>
</body>

以上代码,希望对你有所帮助。
beret 2002-01-08
  • 打赏
  • 举报
回复
To:mkiss(小kiss) 好的。我试试。。那我就先把分给你了。。给你70分,因为我要留下10分给tttk(要做就做最好)。。。 谢谢啦。。。
mkiss 2002-01-08
  • 打赏
  • 举报
回复
姓名哪里是会很多的,我只是举几个例子:好吧!我贴出来了:(注意改一些东西)
<%
set Conn=server.createobject("adodb.connection")
connstr="Driver={SQL Server};Server=mail;UID=homepage;PWD=homepage;Database=fe_homepage" '这里要改成你的数据库连接
Conn.open connstr
set rs=server.createobject("adodb.recordset")
rs.open "select distinct menu1 from table1",conn,1,3
function selected(req,reqvalue)
if req=reqvalue then
selected=" selected"
else
selected=""
end if
end function
%> <form method="POST" action="mjh.asp" name="form1">
代码:<select size="1" name="hth" onChange="document.form1.submit();">
<option selected>请选择代号</option>
<%
if request("hth")<>"" then firsthth=request("hth")
do until rs.eof
%>
<option value="<%=rs("menu1")%>" <%=selected(firsthth,rs("menu1"))%>><%=rs("menu1")%></option>
<% rs.movenext
loop%>
</select>
姓名:<select size="1" name="kh">
<%
if request("hth")<>empty then
set rs1=conn.execute("select * from table1 where menu1='" & request("hth") & "'")
do until rs1.eof
%>
<option value="<%=rs1("content")%>"><%=rs1("menu2")%></option>
<% rs1.movenext
loop
end if%></select>  </p>
</form>
beret 2002-01-08
  • 打赏
  • 举报
回复
To:mkiss(小kiss) 对就是这样的,但姓名那里会有很多,也就是说选“A”的话可能不止一个“A君”。可以把源代码给我吗?我最多就只有80。。我已经全割出去了。。
mkiss 2002-01-08
  • 打赏
  • 举报
回复
beret(贝雷帽):你看看是不是这个效果
http://www.chinafareast.com/mjh.asp
beret 2002-01-08
  • 打赏
  • 举报
回复
To:tttk(要做就做最好)..我已经发信给你啦。。你收信啦。。等你回音。

tttk 2002-01-08
  • 打赏
  • 举报
回复
你所说的这种菜单,在我刚刚开发完成的OA系统中多次应用,具体的实现方法是,利用ASP从数据库中把相关数据导入多个多维数组中,然后,利用菜单的OnChanged事件编写代码。

这里的技巧其实是javascript中多维数组的设置,告诉你一种方法(以下代码需要通过ASP程序得出):
var menu = new Array();
menu[0] = new Array("父结点id", "字节点id", "字节点名称");
menu[1] = ...

有疑问,可以与我直接联系。tttk@263.net
mkiss 2002-01-08
  • 打赏
  • 举报
回复
加点分吧!我帮你写出源代码!
司科仿美团O2O程序源码最新版+wap+微信版亲测完整版是一款基于PHP语言设计的团购网站源码。 司科出品,必属精品!司科公司多年网站建设经验,专业提供商城网站制作,团购网站建设,团购APP制作,商城客户端设计,微信营销系统等服务。 PC端功能介绍: 产品布以天为形式的商品项目(添加、删除、修改、编辑) 秒杀抢团项目 布以秒为形式的商品项目 商户展示 一、商家有自己的简单的介绍页面,介绍信息和产品 二、商家可以自己的后台对商品券进行验证消费。 商家专卖店展示系统 一、合作商家可以通过后台布自己的展示商品和商家新闻,帮助树立商家企业形象,加强与商家的合作。 二、商家可以自己的后台对商品券进行验证消费。 商家上传系统 商家可以自行上传产品,管理员审核,审核通过即可显示,审核不通过商家再修改。 商家结算系统 V1.0 超级商家结算系统,网站自动计算商家提成 超强团购商家店铺 团购商家有独立商家店铺展示,实用性强! 会员级别V1.2 根据会员消费情况等,可以自动升级级别 手机版微信支付 包括PC的扫描支付&微信公众号的微信支付 消费评价+评分功能 独家用户消费评价+评分功能,提升用户体验 城市代理商管理V1.0 每个城市产品可以由独立代理商后台管理 可修改商品时间 可对商品进行修改结束时间,让操作更加方便、人性化。 支持商品退款 提供客户申请商品模式,让商品更加自由,让客户在商品中无后顾之忧,可对商品项目设置两种模式:支持 不支持。 支持快递商品 布项目的时候,可选择优惠券或快递。 好友邀请 用户通过人人网、开心网、MSN/QQ等社交网络邀请好友注册购买。 邮件订阅 用户用来订阅本站每天商品项目信息,方便对自己感兴趣的商品项目及时下单购买。 短信订阅 用户输入手机号码订阅商品信息,可以收到每日最新商品的短信息。 本单答疑 展示在网站右侧,用户可通过答疑,向网站客服咨询,网站管理员在后台回复后显示内容。 常见问题 展示网站内的文字信息,比如:新手指南,入门教程以及常见问题等。 短信券 用户购买时输入手机号码,购买成功后,可收到由商品网站统一出的优惠券帐号和密码。 团券认证 用户消费商品券时,可以在此注销或查询团券有效期。团券注销后不可二次使用。 商家地图展示 通过后台设置商家的具体位置,方便消费型商品的客户查找 项目分类首页展示 首页分类不同的产品,不同楼层展示 多城市切换 商品产品可以分配不同的城市显示 在线客服QQ 通过客服qq,方便与网站浏览者及时沟通。 强大的在线分享 用户通过MSN 人人 网易 开心 豆瓣 百度 腾讯 飞信 新浪微博 QQ空间、等,快速分享给好朋友心怡的商品 网项目。 管理员等级及授权 总管理分配下属管理员,各自管理各自的项目 后台控制分类 自可以后台控制推荐产品,分类展示商品。 邮箱送邮件 用户可以自己设置邮箱,群邮件给用户 图片延时加载 采用图片延时加载,极大减少服务器带宽 快递单号批量上传 商家可以建立一个TXT文档,输入订单编号,快递单交给网站运营者,网站运营者在后台上传这个TXT文档, 系统批量给这些订单生成快递单号 每个项目设置自己独立的SEO 每个项目可以在后台设置自己独立的SEO,更利于网站被搜索引擎收录,让您的网站排名靠前。 整站生成静态页面 自动生成伪静态,可以增加网页访问速度及搜索引擎排名,提高网站的质量。 首页及内页广告位 通过后台的操作来布首页及内页通栏相关的广告图片及图片链接从而及时布重要信息和促销活动。 公告布 统一布公告,也可以按地区来布相关的促销信息以及网站公告。 手机参与商品 通过手机上网参与商品。 购物车功能 方便用户一次性挑选多个商品进行购买 用户购买选择快递 让用户在购买时自己选择城市和快递公司 到货评论功能 用户对已购买的商品表评论。增加用户粘性,吸引其他浏览者 虚拟购买人数 项目可以设置虚拟购买人数,刺激用户消费 管理员操作日志 根据需求进行后台管理员的权限分配 数据库的备份 根据需求自行在后台进行数据备份 用户调查参与 布小调查,直观了解用户产品需求 多件免邮功能 根据购买数量设置是否免去邮费 友情链接 通过后台设置文字链接及图片链接 网站统计 客户根据统计报表可以知道每天用户访问量IP、浏览量pv、地区、ip地址及来自那个网站等,可根据时间生成报表,从而为网络营销提供依据。 WAP端功能介绍: 城市切换 触屏版会根据打开的用户地区进行自动城市更新,弹出提示,是否回到当前城市。 登陆注册 用户可以用QQ或者手机号码登陆触屏版进行购物,减少繁琐的输入选项。 在线搜索 触屏版首页有搜索框,用户可以输入自己喜欢的产品关键字进行查找购

28,408

社区成员

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

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