操纵序列化ajax数据到php

时间:2014-04-06 12:30:28

标签: php jquery ajax

我正在努力从我的php代码中的ajax帖子中读取帖子数据。 我既不是PHP专家也不是Jquery,几周前我就学会了。很抱歉,如果我还没有使用所有的术语。我从ajax序列化数据,因为我的表单中会有更多字段。这里为了清楚起见,我只展示了一个领域。 我正在尝试读取每个变量,例如在这种情况下的注释, 我只是尝试print_r($ _ POST),我得到了错误。 我看不出怎么办,可能是转换或语法错误。 我很感激任何见解

php文件

public function ajaxSave($post_id)
    {

    print_r($_POST);    

}

jquery脚本

$('body').on('click','#saveComment',function(e) {


            $("#comment-form").submit(function(e) {
                var postData = $(this).serialize();
                alert(postData);
                $.ajax( 
                {
                    url : "ajaxSave.php",
                    type: "POST",
                    data : postData,
                    dataType:"json",
                    success:function(data)
                        {
                            alert('success');
                        },
                    error: function(jqXHR, textStatus, errorThrown) 
                        {
                            alert("error");
                        }
                });
                e.preventDefault(); //STOP default action
                });
            $("#comment-form").submit(); 
        });

表格

<input id="Comment_comment" type="text" name="Comment[comment]" maxlength="140" size="60">
Firebug中的

在帖子标签中,我有

Comment[comment]    mycomment
Comment[post_id]    16

来源

Comment%5Bcomment%5D=mycomment&Comment%5Bpost_id%5D=16

在HTML标记中,我有

Array ( [Comment] => Array ( [comment] => for [post_id] => 16 ) ) 

2 个答案:

答案 0 :(得分:0)

您期待JSON回来,但返回$_POST超全局的打印,这是一个parseError。

删除dataType并将打印输出记录到控制台以查看

$('body').on('click', '#saveComment', function (e) {
    e.preventDefault();
    $("#comment-form").trigger('submit');
});

$("#comment-form").submit(function(e) {
    e.preventDefault();
    var postData = $(this).serialize();
    alert(postData);
    $.ajax({
        url: "ajaxSave.php",
        type: "POST",
        data: postData,
        success: function (data) {
            console.log(data)
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert("error");
        }
    });
});

并且不要在单击事件中绑定提交事件

答案 1 :(得分:0)

print_r($_POST);替换为echo json_encode($_POST);