Select 字段序列化无法通过 ajax 工作
Select field serialize not working via ajax
我有 3 个 select 菜单。我需要通过 ajax 将值作为数组发送,我正在尝试使用 serialize()
来完成。问题是它只发送 1 个值而不是所有 3 个值。知道发生了什么事吗?
var menu = $('select[name^="menu"]').serialize();
console.log(menu);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<select name="menu[]">
<option value="test">test</option>
</select>
<select name="menu[]">
<option value="test1">test1</option>
</select>
<select name="menu[]">
<option value="test2">test2</option>
</select>
var menu = $('select[name^="menu"]').serialize();
$.ajax({
type:"POST",
url:"www.example.com/submit.php",
dataType: 'html',
data: 'menudata='+menu+'&name=bob',
success: function(data) {
alert(data);
},error: function() {
alert('error occurred')
}
})
问题在于您如何在 AJAX 请求中将查询字符串发送到服务器,而不在于 serialize()
如何格式化输出。
要解决此问题,请从您手动创建的查询字符串中删除 menudata=
属性 名称:
data: menu + '&name=bob',
我有 3 个 select 菜单。我需要通过 ajax 将值作为数组发送,我正在尝试使用 serialize()
来完成。问题是它只发送 1 个值而不是所有 3 个值。知道发生了什么事吗?
var menu = $('select[name^="menu"]').serialize();
console.log(menu);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<select name="menu[]">
<option value="test">test</option>
</select>
<select name="menu[]">
<option value="test1">test1</option>
</select>
<select name="menu[]">
<option value="test2">test2</option>
</select>
var menu = $('select[name^="menu"]').serialize();
$.ajax({
type:"POST",
url:"www.example.com/submit.php",
dataType: 'html',
data: 'menudata='+menu+'&name=bob',
success: function(data) {
alert(data);
},error: function() {
alert('error occurred')
}
})
问题在于您如何在 AJAX 请求中将查询字符串发送到服务器,而不在于 serialize()
如何格式化输出。
要解决此问题,请从您手动创建的查询字符串中删除 menudata=
属性 名称:
data: menu + '&name=bob',