当我从两个不同的选择中选择值时,出现错误tmp is null
<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>
jQuery部分
$("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 );
});
});
日志显示Thedata
值,category%5B%5D=10&hair%5B%5D=Black
我不知道这个错误从何而来。另外,当我从单个选择中选择值时,它正在工作。
谢谢您的帮助
最佳答案
The serialize() method creates a text string in standard URL-encoded notation.
当文本转换为编码 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>
关于jquery - Ajax 多个数组不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33851807/