【问题标题】:How to get all the selected values of multiselect dropdown value in post/get?如何在 post/get 中获取多选下拉值的所有选定值?
【发布时间】:2015-01-10 02:13:24
【问题描述】:

我有一个带有多选下拉列表的表单,在提交时,值由 Seralize 通过 ajax 传递,但只有一个多选下拉列表的值被传递,而我在该下拉列表中选择了更多选项。

var formdata= $("#form").serialize();
$.ajax(
{               
    url:base_url+"index.php/model/employee",  
    data: "employeedata="+employeeformdata,
    success: function(msg)
    { 
    //success message
    },                     
});

我尝试通过mval=$('#multi').val(); 手动获取值并将其附加到 url,因为我有一个动态表单,我无法指定多选下拉列表的 id,并且一个表单可以有多个多选下拉列表,有什么方法可以在 serialize/serializeArray 上传递值?

【问题讨论】:

    标签: javascript php jquery


    【解决方案1】:

    .serialize() 方法返回一个如下所示的字符串:

    selectNameA=valueA1&selectNameA=valueA2&selectNameB=valueB1
    

    使用 jQuery 通过 ajax 提交表单时,通常会使用以下内容:

    data: $("#form").serialize(),
    

    假设您在服务器上使用 PHP(因为问题被标记为 PHP),您将希望 select 元素的“name”属性的值以“[]”结尾。 (见this question。)

    <select name="xxx[]" ...
    

    这样,$_GET['xxx'] 将是一个包含所有选定值的数组。

    注意:如果您在 ajax 调用中指定type: 'post',您将在服务器上使用$_POST,而不是$_GET

    【讨论】:

      【解决方案2】:

      不使用序列化,您可能没有为您的选择选项指定值,但请尝试一下:

      http://jsfiddle.net/94q7kcub/

      虚拟代码

      jQuery:

      $('#clicker').click(function(){
      var multiselect = $('#marketplaces').val();
      alert(multiselect);
      });
      

      HTML:

      <label for="marketplaces">Marketplaces:</label>
          <select class="select2" multiple id="marketplaces">
              <option value="DE">Germany</option>
              <option value="UK">United Kingdom</option>
              <option value="FR">France</option>
              <option value="ES">Spain</option>
              <option value="IT">Italy</option>
              <option value="US">United States</option>
      </select>
      <button id="clicker">click</button>
      

      【讨论】:

        猜你喜欢
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-17
        • 2021-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多