如何传入多选数组

How do I pass in an array of multiple select?

本文关键字:数组 何传入      更新时间:2023-09-26

我使用serialize(),但数据不是在同一个数组中传输的。

function tableoptionmain() {
var msg   = $('#list-optionform').serialize();
$.ajax({
    type: 'POST',
    async: true,
    url: 'includes/parts/list/table/main-check.php',
    data: msg,
    beforeSend: function() {
        $('#listtable-parent').empty().html('<img style="margin: auto; display: block;" src="http://tbooklist.org/includes/front/img/loader/loaderIcon.gif" />');
    },
    success: function(data) {
        $('#listtable-parent').empty().html(data);
    }
});
};

我有这样的东西:

name1: data1
name1: data2

我想要这样的东西:

name1: data1, data2

我怎样才能做到这一点?

编辑像这样的HTML

<form method="" id="list-optionform">
<select name="name1" multiple="multiple" id="name1">
  <option value="data1">data1</option>
  <option value="data2">data2</option>
  <option value="data3">data3</option>
</select>
<a href="#" onClick="tableoptionmain(); return false;">btn</a>
</form>

如果您选择多个选项php,则只获得最后一个选项

    function tableoptionmain() {
    var msg   = $('#list-optionform').serialize();
        console.log(msg);
       // split the message string by &
        var arr = msg.split("&");
        console.log(arr);
        var str = "name1 : ";
        var len = arr.length;
        for(var  i= 0;i < len ; i++){
        // split each individual arr element by =
            var temp = arr[i].split("=");
            // add data to str
            str+= temp[1]+" , ";
        }
        // remove the last ,
        str = str.slice(0,str.lastIndexOf(" , "));
        console.log(str);
   ...  rest of the code including ajax call
    }