选择字段序列化不通过AJAX工作
我有3个精选菜单。我需要将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')
}
})
I have 3 select menus. I need to send the values over ajax as an array which I'm attempting to do using serialize()
. The problem is that it's only sending 1 value instead of all 3. Any ideas what's going on?
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')
}
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题在于您如何将Querystring发送到AJAX请求中的服务器,而不是
serialize()
正在格式化输出。要解决该问题,请从您手动创建的查询词中删除
menudata =
属性名称:The issue is with how you are sending the querystring to the server in your AJAX request, not with how
serialize()
is formatting the output.To fix the issue remove the
menudata=
property name from the querystring you manually create: