如何在PHP中使用Javascript POST获取$ _POST值?

时间:2013-06-03 14:47:02

标签: javascript post submit

您好,我想问一下如何在Javascript发布后从HTML中打印$ POST值?

以下是我的HTML提交表单:

<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="./comments.js"></script>
</head>
<div id="addCommentContainer">
<form class="add-comment-form" id="addCommentForm3" method="post" action="">
<input type="hidden" value="3" name="comentonpost" id="comentonpost" />
<textarea class="commentinput" name="body" id="body" cols="20" rows="5"></textarea>
<input type="button" class="add-comment-submit" value="Submit" />
</form>
</div>
<div id="addCommentContainer">
<form class="add-comment-form" id="addCommentForm3" method="post" action="">
<input type="hidden" value="3" name="comentonpost" id="comentonpost" />
<textarea class="commentinput" name="body" id="body" cols="20" rows="5"></textarea>
<input type="button" class="add-comment-submit" value="Submit" />
</form>
</div>

这是我的Javascript:

$(document).ready(function () {

$(".add-comment-submit").on("click", function (e) {



    e.preventDefault();



    var submit = $(this);



    if (submit.hasClass("working")) return false;



    submit.addClass("working");

    submit.val("Working...");



    $.post('submit.php',$(this).serialize(),function(msg){

        submit.removeClass("working");

        submit.val("Submit");

        $("<div></div>").html(msg).fadeIn("slow").insertBefore(submit.parent($(".addCommentContainer"))).slideDown();

    });

});

});

这是我的submit.php,提交后打印“Hello World”:

<?PHP 
$message = 'Hello World';
echo $message;
?>

我不知道为什么,但似乎它没有在submit.php上发布信息,或者我在某处出错了,因为当我在submit.php中尝试这个时:

<?PHP 
$message = $_POST["body"];
echo $message;
?>

它不会打印名称为“body”的文本区域中键入的内容。我如何打印在正文输入文本区域中写入的内容?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您在触发器内使用this,但触发器位于按钮上,而不是表单上,因此this引用该按钮。这也意味着您要序列化按钮而不是表单。请尝试此POST调用:

$.post('submit.php',$(this).parent().serialize(), ...

修改

顺便说一句,通常最好将触发器添加到表单中,例如正如here所述。