2009-07-26 192 views
1

我正在寫一些使用jQuery的功能,我通常處理頁面刷新/表單提交。jQuery ajax問題

基本上我使用jQuery的ajax提交表單。

<html> 
<head> 
<script type="text/javascript" src="js/jquery-1.3.2.js"></script> 

<script type="text/javascript"> 

$(document).ready(function(){ 


    $("#show-comment-form").click(function(event){ 
     var ret = $.post("post.php", $("#comment-form").serialize(), "", "html"); 
     $("#theComment").html("<strong>" + ret +"</strong>"); 
    }); 
}); 


</script> 

</head> 
<body> 
Testing Stuff 
<br /><a href="#" id="show-comment-form">Insert New Message</a><br /> 

    <div id="comment-form"> 
     <form name="form" id="form"> 
      <span>Enter Your Question Here</span> 
      <textarea id="comment" name="comment"></textarea> 
     </form> 

    </div> 

    <p id="theComment"> 

    avsailable 
    </p>  


</body> 

</html> 

返回的對象是一個XMLHttpRequest。我是否操縱這個對象,或者是我可能不需要的東西。

我的問題是我想讓用戶發佈一個使用網頁上的表單的回覆,但是沒有頁面重新加載並在所有其他用戶響應的開頭預先添加html。表單所發佈的頁面打印出一些HTML,但我無法讓該HTML顯示在頁面上,因爲響應是一個XMLHttpRequest對象。我有點迷路。有人能指引我朝着正確的方向嗎?

回答

3

您必須使用callback功能參數:

$("#show-comment-form").click(function(event){ 
    $.post("post.php", $("#comment-form").serialize(), function(ret){ 
     $("#theComment").html("<strong>" + ret +"</strong>"); 
    }, "html"); 
}); 

異步請求結束時,該函數將被執行,它的第一個參數是數據從返回服務器。

2

指定的函數作爲第三參數和數據應在回調返回:

VAR RET = $。員額( 「post.php中」,$( 「#註釋的形式」)連載( ),函數(data){(data).appendTo('body'); });

您不應該需要與XHR對象進行交互。欲瞭解更多信息:

http://docs.jquery.com/Ajax/jQuery.post