根据输入框中输入的学号,在另一个框中显示该学生姓名?如何做?

soarsoar77 哈哈  2010-07-19 10:18:20
刚学asp,这个不会做。具体我查了下,有2种做法;一种是在页面载入时,就把所有的学号和姓名都放在数组中,然后输入学号时,只要在数组中查询结果显示就可以了。

数组如何定义?定义在什么地方才是全局的变量?如何在载入时从数据库中取得数据到数组?最后如何在数组中查询?
最好有一个完整的代码

第二种是用ajax,这个我更不懂了。ajax需要安装么?怎么用?有没有简单易懂的代码?
...全文
364 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
soarsoar77 2010-07-21
终于全部搞好了,花了我1天多时间

3楼的回答基本正确,不过里面有几个小bug,害我花了不少时间调试,我修正下

no = request("no")
其实应该用no2 = request.QueryString( "no2")

respons.write(name)
这句里"("是中文模式的,应该用"(",name变量是系统用的,还是换一个变量名比较好

var no= document.getElementById("no")
这句也有问题,应该是no2= document.getElementById("no").value

最最关键的一点是
document.myForm.name.value=xmlHttp.responseText
这里返回回来的xmlHttp.responseText如果是中文,那就会显示乱码
查了许多资料最后有了解决办法
用VBSCript写个转换函数并且,这里只能取xmlHttp.responseBody的值才能正确转换
document.myForm.name.value=bytes2BSTR(xmlHttp.responseBody);

详细的转换函数是网络上查来的,也贴一下
Function bytes2BSTR(vIn)
strReturn = " "
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function

不过还是要感谢3楼的,至少给了我一个比较明确的思路
回复
yajun_snow 2010-07-20


var no= document.getElementById("no")
xmlHttp.open("GET","aaa.asp?no="+no,true);



回复
yajun_snow 2010-07-20
[Quote=引用 6 楼 soarsoar77 的回复:]

在问下楼上的,aaa.asp?no=后面,要传参数,也就是输入的学号的值,这个在javascript中如何取到我在输入框no上输入的值?
[/Quote]

var no= getElementById("no")
xmlHttp.open("GET","aaa.asp?no="+no,true);
回复
IANCHAN42 2010-07-20
不用自己写,用jquery的ajax,对浏览器兼容还比较好。
$.ajax({
type: "get",
url: "提供服务的地址",
beforeSend: function(XMLHttpRequest){
//开始获取信息如果需要提示信息可以写这里
},
success: function(data, textStatus){
//这里成功返回
},
complete: function(XMLHttpRequest, textStatus){
//完成后可以关闭你的提示信息 },
error: function(){
//请求出错处理
}
});
自己多看看jquery的手册
回复
soarsoar77 2010-07-20
虽然楼上的解释的很清楚了,我也大体能理解,但实际情况就是那段ajax代码运行报错,具体哪里错我也看不出来。我只能把报错内容贴出来

行: 21
char: 25
错误:Invalid character
代码:0
回复
soarsoar77 2010-07-19
都和你说了,我查过了,但是没有我满意的答案。多数是写的太简单了,只写了思路,没有完整的代码,我希望是有可以用的完整代码
回复
2321zhf 2010-07-19
google是最好的老师
回复
soarsoar77 2010-07-19
在问下楼上的,aaa.asp?no=后面,要传参数,也就是输入的学号的值,这个在javascript中如何取到我在输入框no上输入的值?
回复
cheng20100915 2010-07-19
楼主,3楼的兄弟已经给出ajax的代码了,好好学啊,
现在我说下怎么你的第一个问题

建议不要用数组,用集合吧
Arraylist list=new Arrylist();//集合声明
list.add("查出来的数据");//把从数据库中查询出来的数据添加在里面.

下面用eques()方法来判断
for(int i=0;i<list.size;i++){
string a=list.get(i);
if(a.eques(参数,"name")){
....能进入此处就算查出来了,然后把a 赋予另外的控件中,这个楼主应该会吧,太简单了,下面就不说了

}
}
回复
yajun_snow 2010-07-19
aaa.asp

<%
no = request("no")
'查询相应的name
respons.write(name)
%>
回复
yajun_snow 2010-07-19

<html>
<body>

<script type="text/javascript">

function ajaxFunction()
{
var xmlHttp;

try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{

// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{

try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}

xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.name.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","aaa.asp?no=",true);
xmlHttp.send(null);

}
</script>

<form name="myForm">
<input type="text" id="no" onblur="ajaxFunction();" />
<input type="text" id="name" />
</form>

</body>
</html>

回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告