可以用XMLHTTP来传值.对JSP不熟悉.
后台是用ASP实现.
不过,思想是想通的.
只要demo.asp返回的格式为数组,即
xxxx,yyyyyy,zzzzzzz 
格式的字符串就行了.demo.htm<script language="vbscript">
Function bytes2BSTR(vIn)
Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
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
</script>
<script language="JavaScript">
function getData()
{
    //通过XMLHTTP发出请求返回数据.
    var oBao = new ActiveXObject("Microsoft.XMLHTTP");
    oBao.open("POST","demo.asp?txt="+document.all.txt.value,false);
    oBao.send();
    sdata = bytes2BSTR(oBao.ResponseBody);
    //alert(sdata)
    Javascript:buildSel(sdata,document.all.sel2);
}
function buildSel(str,sel)
{
    //接收到数据,构建Select
    var arrstr = new Array();
    arrstr = str.split(",");
    for(var i=0;i<arrstr.length;i++)
    {
        sel.options[sel.options.length]=new Option(arrstr[i],arrstr[i])
    }
}
</script>
<select name="sel2"></select>
<input type="text" name="txt">
<input type="button" onclick="getData()" value="GetData">
demo.asp<% @Language="JavaScript" %>
<%
function OpenDB(sdbname)
{
    var connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(sdbname);
    var conn = Server.CreateObject("ADODB.Connection");
    conn.Open(connstr);
    return conn;
}
var conn = OpenDB("data.mdb");
var arrstr = new Array();
var rs = Server.CreateObject("ADODB.Recordset");
var sql = "select * from web where webname='"+Request("txt")+"'";
rs.open(sql,conn,1,1)
while(!rs.EOF)
{
arrstr[arrstr.length] = rs("weburl").Value;
rs.MoveNext();
}
//后台最后输出只要是xxx,zzzz,yyyy格式的字符串就行了.
Response.Write(arrstr.toString());
%>
数据库:data.mdb
表web
字段id,webname,weburl

解决方案 »

  1.   

    javascript+xml用数据绑定技术,在MSDN--->WEB开发--->数据绑定中有详细的解释
      

  2.   

    不太清楚你的意思,是不是从后台取到数据然后,然后把数据放到下拉框里,
    如果这样的话
    通过hidden变量,然后在script里面通过循环应该可以放到下拉框里吧?
      

  3.   

    既然是JSP
    那用服务器段脚本应该不难啊
    <select>
    <%for(int i=0;i<arr.length;i++){%>
    <option><%=arr[i]%></option>
    <%}%>
    </select>或者清楚点:
    <%
    out.println("<select>")
    for(int i=0;i<arr.length;i++){
      out.println("<option>" + arr[i] + "</option>");
    }
    out.println("</select>");
    %>我不太懂你的意思,你是要这样的东西吗?
      

  4.   

    谢谢楼上的silverblade(银色刀刃) ,这种动态的操作我只想到要用JAVASCRIPT没想到直接可以用JSP,真是失败。
    多谢了。