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
    评论
好的,下拉菜单可以使用HTML和Vue来实现,从数据库调用数据可以使用后端技术(如PHP、Node.js等)来完成。 首先,在HTML可以使用`<select>`标签来创建下拉菜单,例如: ```html <select> <option value="1">选项1</option> <option value="2">选项2</option> <option value="3">选项3</option> </select> ``` 这里的`<option>`标签是下拉菜单的选项,`value`属性是选项的值,`<select>`标签的`name`属性可以用来提交表单数据。 接着,我们可以使用Vue来动态生成选项。首先,在HTML定义一个Vue实例: ```html <div id="app"> <select v-model="selected"> <option v-for="item in options" :value="item.id">{{ item.name }}</option> </select> </div> ``` 这里的`v-for`指令可以遍历`options`数组的数据,`:value`和`{{ item.name }}`分别表示选项的值和展示的文本。`v-model`指令可以绑定选的值到Vue实例的`selected`属性。 然后,在Vue实例定义`options`数组,并从数据库获取数据: ```javascript var app = new Vue({ el: '#app', data: { selected: '', options: [] }, mounted: function () { var self = this; axios.get('/api/options') .then(function (response) { self.options = response.data; }) .catch(function (error) { console.log(error); }); } }); ``` 这里使用了Axios库来发起HTTP请求,从`/api/options`接口获取数据,然后将数据赋值给`options`数组。 最后,在后端代码提供`/api/options`接口,从数据库获取数据并返回JSON格式的数据即可。 这样就可以实现从数据库获取数据并生成下拉菜单了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值