繁体   English   中英

如何在发布/获取中获取多选下拉列表值的所有选定值?

[英]How to get all the selected values of multiselect dropdown value in post/get?

我有一个带有多选下拉列表的表单,提交时,这些值通过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();手动获取值mval=$('#multi').val(); 并将其附加到url,因为我有一个动态表单,所以我不能指定multiselect下拉列表的ID,并且一个表单可以有多个multiselect下拉列表。是否有任何方法可以将值传递给serialize / serializeArray?

不能使用序列化,并且可能没有为选择选项提供值,但是可以尝试一下:

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>

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

selectNameA=valueA1&selectNameA=valueA2&selectNameB=valueB1

通过jQuery通过ajax提交表单时,通常使用以下命令:

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

假设您正在服务器上使用PHP(因为该问题是为PHP标记的),您将希望select元素的“ name”属性值以“ []”结尾。 (请参阅此问题 。)

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM