Ajax多个数组无法正常工作

时间:2015-11-22 05:07:36

标签: jquery ajax serialization

当我从两个不同的选择中选择值时,我收到错误 tmp is null

   $("select.select").change( function() {
        var Thedata = $("#filterform").serialize();
            console.log(Thedata);

        $.ajax({
            data: Thedata,
            type: 'POST',
            url: 'autocomplete.php?cat=filtermodelscall',
            })
            .done(function( html ) {
                $("tbody").html( html );
            });
    });

jQuery部分

Thedata

日志显示REPO//conf/svnserve.conf类别%5B%5D = 10& hair%5B%5D =黑色 我不知道这个错误来自哪里。此外,当我从单个选择中选择值时,它正在工作。 谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

  

serialize()方法以标准URL编码方式创建文本字符串   符号

当文本转换为编码网址时:

[转换为%5B

]转换为%5D

您需要使用decodeURIComponent() JS函数解码已编码的网址,如下所示:



$("select.select").change( function() {
    var Thedata = $("#filterform").serialize();
    console.log(decodeURIComponent(Thedata));          
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post" id="filterform">
       <select multiple name="category[]" id="category" class="select">
           <option value="10">Men Foreigner</option>
           <option value="11">Women Foreigner</option>
        </select>

        <select multiple name="hair[]" id="hair" class="select">
           <option value="Black">Black</option>
           <option value="Blond">Blond</option>
        </select>
</form>
&#13;
&#13;
&#13;