当前位置:  开发笔记 > 编程语言 > 正文

如果input元素是一个数组,如何使用JQuery发送序列化表单数据

如何解决《如果input元素是一个数组,如何使用JQuery发送序列化表单数据》经验,为你挑选了2个好方法。

我的PHP代码中有这段代码:

while ($row = mysqli_fetch_assoc($result))
{
    extract($row);
    echo "";
    echo "$book_id";
    echo "$threat_name";
    echo "";
}

在HTML页面中,我想使用jQuery serialize()方法在bookArray []中发送所选书籍的数组.在我的JavaScript中,

var selectedbooks = $("book_form").serialize();
alert (selectedbooks); 

在警告消息框中,我没有得到任何值(空字符串).

以前当我使用Prototype时,它工作得很好.



1> 小智..:

简单: serialize().replace(/%5B%5D/g, '[]')


好主意,除了它应该是serialize().replace(/%5B%5D/g,'[]');
(因为,如果它不是具有全局属性的正则表达式,则仅替换第一个匹配项.)

2> Hailwood..:

我想出了一种方法,当使用post发送数据时

另一方面,您可以使用访问元素 $_['post']['name']

如果它是一个数组(例如,多选),那么在您的服务器上,您可以再次以数组的形式访问它 $_POST['myselect'][0]...

代码: 用于序列化帖子的表单数据的函数

function serializePost(form) {
    var data = {};
    form = $(form).serializeArray();
    for (var i = form.length; i--;) {
        var name = form[i].name;
        var value = form[i].value;
        var index = name.indexOf('[]');
        if (index > -1) {
            name = name.substring(0, index);
            if (!(name in data)) {
                data[name] = [];
            }
            data[name].push(value);
        }
        else
            data[name] = value;
    }
    return data;
}

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有