选择字段序列化不通过AJAX工作

发布于 2025-01-30 10:54:14 字数 1058 浏览 2 评论 0原文

我有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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傻比既视感 2025-02-06 10:54:14

问题在于您如何将Querystring发送到AJAX请求中的服务器,而不是serialize()正在格式化输出。

要解决该问题,请从您手动创建的查询词中删除menudata =属性名称:

data: menu + '&name=bob',

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:

data: menu + '&name=bob',
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文