首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery serializeArray失败

jQuery serializeArray失败
EN

Stack Overflow用户
提问于 2015-04-07 18:18:15
回答 2查看 585关注 0票数 0

请考虑以下几点:

PHP:

代码语言:javascript
复制
<form id="f-submit" method="post" action="">

    <button class="btn-submit" name="update" type="submit">APPROUVE</button>

</form>

jQuery:

代码语言:javascript
复制
$("button.btn-submit").click(function(event) {
    event.preventDefault();

    var formData = $("#f-submit").serializeArray();
    formData.push({actiontype: "delete"});

    $.ajax({
        type: "POST",
        url: "includes/submit_comment.php",
        data: formData
    }).done(function(data) {

        alert(data);

    }).fail(function(data) {

        alert('Ajax failed.');

    });
});

submit_comment.php:

代码语言:javascript
复制
if (isset($_POST['actiontype'])) {

    echo 'found';

} else {

    echo 'not found';

}

出于某种原因,我总是被“找不到”。

但是,当我在没有序列化的情况下发送数据时,

代码语言:javascript
复制
var formData = ({actiontype: "delete"});

很管用!

所以问题肯定在serializeArray()上,但是它是什么呢?我要疯了这一次..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-07 18:48:32

试试这个系统:

代码语言:javascript
复制
formData.push({name: 'actiontype', value: delete});
票数 1
EN

Stack Overflow用户

发布于 2015-04-07 18:36:02

serializeArray()生成由名称和值组成的对象。您试过调试var formData = $("#f-submit").serializeArray();吗?在您的示例中,它不应该生成名称/值对,因为:

只有“成功的控件”被序列化到字符串。没有序列化submit按钮值,因为表单没有使用按钮提交。要使表单元素的值包含在序列化的字符串中,元素必须具有name属性。没有序列化来自文件select元素的数据。jQuery文档

因此,您必须添加与提交输入不同的输入。让我们检查一下这个智能解决方案:jQuery serializeArray不包括单击的提交按钮

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29498412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档