html select下拉菜单 从数据库中读取 ajax


    首先

    html中:

<span style="font-size:18px;"> <td>港口名称:</td>
 <td>
    <select name="ttc_portname" id="ttc_portname"  style="width:158px;">
    </select>
</td></span>
    下面为给下拉菜单赋值:
     在body中我们定义一个onload函数:
<span style="font-size:18px;"> <body  οnlοad="getCHART_NAME()">
   
</span>
    然后在js中定义函数

 

<span style="font-size:18px;"> function getPORT_NAME()//港口字段 下拉菜单自动从数据库中读取填充
    {
       var str="select 字段名 from 数据库名 t group by 字段名";
       ajax(str);
     }
 下面我们写异步传输ajax:

 function ajax(str)
    {
     if (xmlhttp!=null)
     {
      xmlhttp.onreadystatechange=function()
       {
        if (xmlhttp.readyState==4 &&xmlhttp.status==200)
         {
          document.getElementById_x_x("ttc_portname").innerHTML=xmlhttp.responseText;
         // 此时接受到后台传来的str语句添加到innerHTML,即完成下拉菜单的赋值
         }
       };
      
      }
       var src ="/tjhc/ajax/1.jsp?str=" + str; / /此处为ajax后台地址,我们将语句传输到后台
      xmlhttp.open("POST",src,true);
      xmlhttp.send();   
    }

 以下为后台

   String sql =request.getParameter("str");

    String def=request.getParameter("def");
    if(def!=null)
    def = newString(def.getBytes("ISO-8859-1"),"utf-8");
    else
    def="";
    String str ="";
    StringPORT_NAME="";
    ConnectionmyConn = new ConnDB().getConn();
   
    if(sql!=null&&(sql!="")&&!sql.equals("null"))
    {
      PreparedStatement mySta = myConn.prepareStatement(sql);
       ResultSet rs= mySta.executeQuery();
      while(rs.next())
        {
          PORT_NAME= rs.getString("PORT_NAME");
          if(PORT_NAME != "" && PORT_NAME!= null)
          {
              if (PORT_NAME.equals(def))
              {
                   str +=""+PORT_NAME+"";
              }
              else
              {
                str +=""+ PORT_NAME +"";
             }
          }
            
         }
      out.print(str);//将str传输到ajax
      rs.close();
      mySta.close();
    }


若我们有多个下拉菜单,可以分多个ajax 一个处理完在下面激活另一函数,以此类推!


</span>


 

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值