用Frame.在 下拉框onChnage="query()"

解决方案 »

  1.   

    <script language="javascript">
    function changeList() {
    document.frmName.submit();
    }
    </script>
    <%
    if ( request.getMethod().equals("POST") ) {
        int id = Integer.parseInt(request.getParameter("list"));
        //执行数据库查询 sql = "select * from aaaa where id=" + id;
    }
    %>
    <form name="frmName" action="这个文件名" method="POST">
    <select name="list" onClick="changeList()">
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <select>
    </form>大概就是这个思路,select的onClick事件触发提交,然后处理
      

  2.   

    <script language="javascript">
    function changeList() {
    document.frmName.submit();
    }
    </script>
    <%
    if ( request.getMethod().equals("POST") ) {
        int id = Integer.parseInt(request.getParameter("list"));
        //执行数据库查询 sql = "select * from aaaa where id=" + id;
    }
    %>
    <form name="frmName" action="这个文件名" method="POST">
    <select name="list" onClick="changeList()">
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <select>
    </form>大概就是这个思路,select的onClick事件触发提交,然后处理
      

  3.   

    <select name="sl" language="javascript" onchange="st_change();">
    </select><script language="javascript">
    function st_change()
    {
        var str=document.all.st.value;
        //以下的就是你的数据库
        .......
        //取数据操作完毕
        //下面是填充界面的函数
       fillScreen();
    }
    function fillScreen()
    {
        //填充界面的操作
    {
    </script>
      

  4.   

    用xmlhttp+dhtml可以实现页面不刷新,
    <scritp>
    var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    xmlhttp.Open("POST","/postrequest");
    xmlhttp.SetRequestHeader("p1",s1.options[s1.selectedindex].value);
    xmlhttp.Send();show1.innerHTML = xmlhttp.responseXML;
    </script>
    <select id="s1">
    <option value="a">a
    <option value="b">b
    <option value="c">c
    </select>
    <div id="show1"/>
    postrequest 是个servlet,在servlet的dopost()里面按照一般的响应post的动作来处理.
    上面的代码是临时写的,注意用的时候需要改正其大小写
      

  5.   

    用xmlhttp+dhtml可以实现页面不刷新,
    <scritp>
    function selectaction() {
    var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    xmlhttp.Open("POST","/postrequest");
    xmlhttp.SetRequestHeader("p1",s1.options[s1.selectedIndex].value);
    xmlhttp.Send();show1.innerHTML = xmlhttp.responseXML;
    }
    </script>
    <select id="s1" onchange="selectaction()">
    <option value="a">a
    <option value="b">b
    <option value="c">c
    </select>
    <div id="show1"/>
    postrequest 是个servlet,在servlet的dopost()里面按照一般的响应post的动作来处理.
    上面的代码是临时写的,未测试,注意用的时候需要改正其大小写
      

  6.   

    色子没看清我的问题,我是说不用提交按钮。jo_yoko,你的函数中document.all.st.value 是不是错了?st应该是sl吧?
      

  7.   

    再次请教jo_yoko,你写的代码我有些不明白,好像javaScript不能访问数据库,请详细写一下。
    填充界面的操作我用html写,怎样在fillScrenn里实现?请不吝赐教。
      

  8.   

    没有按提交按钮啊!
    如果你是指不刷新页面,只好提前读出来,存在javascript数据结构里,好像这样做得不多
      

  9.   

    取数据库的操作当然不是用javascript来完成了,我的意思也没有说清楚,我所说的对数据库的操作提指你在页面刚打开的时候就把所有的数据都先下载到本地的一个数组里,然后根据你下拉框的变化,在那个数组里取出你想要的值,然后再fillScreen()就可以了
    在服务器端取值的大概的流程我给你写出来<%
    //这里是取数据的操作,你应该知道的吧
    //数据库操作完毕之后,打开的记录集
    out.println("<script language=javascript>");
    out.println(" var pData_T002=new Array();");
    int i=0;
    while (rs.next())
    {
            //此处把你所有的数据写到本地数组里去,然后在本地端就可用了
    out.println(" pData_T002[" + i + "] =new Array();");
    for (int k=0;k<numCols-1;k++)
    {
    if (k<=9)
    out.println(" pData_T002[" + i + "][" + k + "]=\"" + rs.getString("U00" + k) + "\";");
    else
    out.println(" pData_T002[" + i + "][" + k + "]=\"" + rs.getString("U0" + k) + "\";");
    }
    i++;
    }
    out.println("</script>");
    rs.close();
    如果你还是不清楚,把你的邮箱告诉,我可以发一份完整的源程序给你
      

  10.   

    看大家javascript用的炉火纯青,真实羡慕。
    楼上的大哥,麻烦给我发一份:[email protected].
    另外,请大家帮忙看一下这个问题:
    http://expert.csdn.net/Expert/topic/1249/1249745.xml?temp=.6904108