0

您好,我想问一下如何在 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”的内容。我如何让它打印正文输入文本区域中写的内容?

提前致谢!

4

1 回答 1

0

this在触发器内部使用,但触发器在按钮上,而不是表单上,因此this引用了按钮。这也意味着您正在序列化按钮而不是表单。试试这个 POST 调用:

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

编辑:

顺便说一句,将触发器添加到表单通常是更好的做法,例如,如here所述。

于 2013-06-03T18:06:18.093 回答