【问题标题】:get multi select listbox values to spring controller through ajax call通过ajax调用获取多选列表框值到spring控制器
【发布时间】:2015-07-25 03:50:36
【问题描述】:

我有一个多选列表框。我想将用户选择的列表框值发送到弹簧控制器。我正在调用 ajax 来执行操作。 请通过 ajax 调用建议我如何将多选列表框中的所有值发送到 java spring 控制器并获取所有选定的列表框值。请找到小提琴https://jsfiddle.net/bwc3yqme/5/

下面是我的ajax调用:

function updatedInfo()
{
    var xmlHttp;  
    if (window.XMLHttpRequest)
    {
        xmlHttp= new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
    }
    var url = contextPath+"/updateInfo.htm";
    xmlHttp.onreadystatechange = function() {
        handleServerResponse(xmlHttp);
    };
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);

    function handleServerResponse(xmlHttp)
    {   
       if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
       {


       }   
    }
}

控制器:

   @RequestMapping(value = "/updateInfo", method = RequestMethod.GET)
   public void updateInfo(HttpServletRequest request,
           HttpServletResponse response, @ModelAttribute MyDataDTO myDto,BindingResult beException,final @RequestParam("selItems") String params){

//i want to get the user selected list box values...

}

请建议我如何通过 ajax 将用户选择的列表框值发送到 spring 控制器。

【问题讨论】:

    标签: javascript jquery ajax spring spring-mvc


    【解决方案1】:

    updateInfo 函数中使用 JQuery 从右侧列表框中获取所有值:

    var params = "?";
    var andParam = "";
    $("#d option").each(function(){
        params += andParam + "selected=" + $(this).val();
        andParam = "&";
    });
    

    将其作为参数添加到您的网址,如下所示:

    var url = contextPath+"/updateInfo.htm"+params;
    

    然后从请求中读取它(它将是一个数组):

    request.getParameter("selected");
    

    已编辑Fiddle

    【讨论】:

    • 当我将代码保留在上面的 ajax 函数中时,它会抛出 javascript 错误,意外标识符。请建议将代码保存在哪里 $("#d option:selected").each(function(){ .. 谢谢。@jmartins
    • updatedInfo 函数内部。你什么时候叫它(updatedInfo)?
    • 我错过了字符串之间的“+”,我的错。
    • 感谢@jmartins,但问题是它只能在选定的列表框中获取突出显示的元素。您可以在 jsfiddle jsfiddle.net/bwc3yqme/6 中看到相同的场景。我从左侧列表框中选择的任何项目都显示在右侧列表框中作为选定项目,并且仅发送这些项目。但我想发送右侧列表框中的所有现有项目。请建议。谢谢。
    • 看看是不是你想要的。
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多