struts2+jquery实现动态添加下拉框

 

一个下拉框的内容需要从数据库读取..想不出其他什么办法了.只能用ajax来实现了...在页面载入的时候发送ajax信息,然后动态添加到下拉框里..

这里偷了个小懒.我将返回的数据直接用下划线隔开了(一般来说,应该是返回一个xml格式的内容),.

其他的部分和上面那节struts2+json+jquery实现ajax没什么不同,就把action里面执行的方法和页面的关键部分放上来

package com.test.action;

import java.util.List;

import com.googlecode.jsonplugin.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;
import com.test.model.DataDict;
import com.test.service.DataDictService;

@SuppressWarnings("serial")
public class DataDictAction extends ActionSupport
{
 private List<DataDict> list;
 private DataDictService dataDictService;
 private String category;
 private String id;
 private String value;
 
 public String getId()
 {
  return id;
 }
 public void setId(String id)
 {
  this.id = id;
 }
 public String getValue()
 {
  return value;
 }
 public void setValue(String value)
 {
  this.value = value;
 }
 public String getCategory()
 {
  return category;
 }
 public void setCategory(String category)
 {
  this.category = category;
 }
 public List<DataDict> getList()
 {
  return list;
 }
 public void setList(List<DataDict> list)
 {
  this.list = list;
 }
 @JSON(serialize = false)
 public DataDictService getDataDictService()
 {
  return dataDictService;
 }
 @JSON(serialize = false)
 public void setDataDictService(DataDictService dataDictService)
 {
  this.dataDictService = dataDictService;
 }
 /**
  * 查询的是分销商类型
  * @return
  */
 public String clientLevel()
 {
  list = dataDictService.findDict(category);
  if(list.size() == 0)
  {
   value = "";
   id = "";
  } else if(list.size() == 1)
  {
   id = list.get(0).getId();
   value = list.get(0).getName();
  } else
  {
   value = list.get(0).getName();
   id = list.get(0).getId();
   for(int i = 1; i < list.size(); i++)
   {
    id = id + "_" + list.get(i).getId();
    value = value + "_" + list.get(i).getName(); //主要看这两句, 我把返回的数据,使用"_"隔开了
   }
  }
  return SUCCESS;
 }
}

 在看页面的

//jquery添加下拉列表]
    function init()
         {  
          var category = "client_level";//这个直接对应于数据库的字段
          var url = 'DataDict_clientLevel.action?category='+category;
          var params = null;
          $.ajax({
              type:'POST',            //http请求方式
              url: url,    //服务器段url地址
              data: params,           //发送给服务器段的数据
              dataType:'json',  //告诉JQuery返回的数据格式
              success: callback  //定义交互完成,并且服务器正确返回数据时调用的回调函数
           });
         }
      function callback(data)
         {
          var pageid = data.id;
          var pagevalue = data.value;
          var id = new Array();
          var value = new Array();
          id = pageid.split("_");
          value = pagevalue.split("_");//使用split方法,从新分开.下面是js添加下拉框的代码...

          var obj = document.getElementById("clientLevel");
          for (i=0;i<id.length ;i++ )   
          {
         obj.add(new Option(value[i],id[i])); 
          }
         }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是使用 jQuery 插件 jquery-multiselect 和 jQuery 动态生成下拉框的示例代码: HTML 代码: ```html <div id="selectBoxContainer"></div> ``` JavaScript 代码: ```javascript $(document).ready(function() { // 动态生成下拉框 var selectBox = $('<select id="selectBox" multiple></select>'); selectBox.append($('<option value="option1">选项1</option>')); selectBox.append($('<option value="option2">选项2</option>')); selectBox.append($('<option value="option3">选项3</option>')); selectBox.append($('<option value="option4">选项4</option>')); selectBox.append($('<option value="option5">选项5</option>')); $('#selectBoxContainer').append(selectBox); // 初始化下拉框 $('#selectBox').multiselect(); }); ``` 在上面的示例代码,我们首先在 HTML 定义了一个 ID 为 "selectBoxContainer" 的容器,用于放置动态生成的下拉框。 然后,在 JavaScript ,我们使用 jQuery 的 ready() 方法来确保文档加载完成后再执行代码。在 ready() 方法,我们使用 jQuery 动态生成了一个 ID 为 "selectBox" 的下拉框,并设置了 multiple 属性,表示该下拉框可以多选。接着,我们为下拉框添加了五个选项。 最后,我们将动态生成的下拉框添加到容器,并使用 multiselect() 方法初始化下拉框,从而实现动态生成下拉框并使用 jquery-multiselect 插件实现下拉框多选的功能。 这样做的好处是可以根据实际需求动态生成下拉框,并且可以使用 jquery-multiselect 插件方便地实现下拉框多选的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值