0

您好,我有这些 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>



这是我的 JS:

     $(document).ready(function () {
// $(".add-comment-submit") selects all elements with the class "add-comment-submit", so the "submit" buttons
// .on will handle event binding for the click event on any of those buttons
$(".add-comment-submit").on("click", function (e) {
    e.preventDefault();
    // 'this' is the element that fired the event, so the submit button
    var submit = $(this);

    // check if the submit button has the "working" class added. this will tell us that someone already clicked it
    // and we shouldn't continue
    if (submit.hasClass("working")) return false;

    // add "working" class to the submit button to prevent double click
    submit.addClass("working");
    submit.val("Working...");

    /* Sending the form fileds to submit.php: */
    // do the post, and on callback (simulated with setTimeout) set everythign back
    $.post('submit.php',$(this).serialize(),function(msg){

    // simulate post 
    setTimeout(function () {   
        submit.removeClass("working");
        submit.val("Submit");

        //$(msg.html).hide().insertBefore(submit.parent()).slideDown();

        // simulate getting results back from server
        $("<div>Here are some results or something</div>").hide().insertBefore(submit.parent($(".addCommentContainer"))).slideDown();

    }, 1000);
    });
});
});

使用此 JS 后,在每个表单上按 SUBMIT 按钮后会出现消息“这是一些结果或其他内容”。

这是我的提交.php:

<?PHP 
$message = "Hello world";

echo $message;
?>



我的问题是 - 我如何$message在提交时打印 JS 而不是“这里有一些结果或什么”?

你能告诉我我必须在我的脚本中改变什么才能让它起作用吗?提前致谢!

4

2 回答 2

0

正如文档中明确指出的,回调中的第一个参数是来自服务器的响应。

于 2013-06-03T13:57:51.120 回答
0
$.post('submit.php',$(this).serialize(),function(msg){

    // simulate post 
    setTimeout(function () {   
        submit.removeClass("working");
        submit.val("Submit");

        //$(msg.html).hide().insertBefore(submit.parent()).slideDown();

        // simulate getting results back from server
        $("<div>" + msg +"</div>").hide().insertBefore(submit.parent($(".addCommentContainer"))).slideDown();

    }, 1000);
    });
于 2013-06-03T15:07:16.337 回答