2011-05-15 173 views
1

我無法取回我的數據,這裏是我的代碼。哪裏有問題?謝謝。jquery ajax post成功返回數據

的index.php

<script type="text/javascript">  
jQuery(document).ready(function(){ 
    $(".click").click(function(){ 
     var value = $(this).val();// post each click value to another page 
    $.ajax({ 
     url: "post.php", 
     dataType: "html", 
     type: 'POST', //I want a type as POST 
     data: "name="+value, 
     success: function(data){ 
      $("#result").data($data); 
     } 
     }); 
    }); 
}); 
</script> 

<div id="result"></div> 
<a href="#" class="click">tim</a> 
<a href="#" class="click">tom</a> 
<a href="#" class="click">jimmy</a> 

post.php中

<?php 
$name=trim(addslashes(htmlspecialchars(rawurldecode($_POST["name"])))); 
$data .='Your name is '.$name; 
$data .='how do you do'; 
echo $data;// how to return all the html in post.php? or return $data part? 
?> 
+0

這不是問題(@Tatu已經舉報過但是分開來說:如果你沒有正確編碼你的數據,你會*在某些時候遇到麻煩。你需要在你的'value'變量上調用'encodeURIComponent':'data:「name =」+ encodeURIComponent(value)'當你爲'data'參數傳遞一個字符串時,**你**正在爲它負責被編碼。 (或者,讓jQuery處理它:'data:{name:value}'。) – 2011-05-15 09:01:43

回答

5

看這個問題?

... 
success: function(data){ 
    $("#result").data($data); 
} 
... 

你把數據作爲data但嘗試訪問它作爲$data,這是一個不同的,未初始化的變量。

此外,您不能在a元素上使用.val(),而是使用.html()來代替內部HTML。您可能還想在#result上使用.html()而不是.data()

否則你的例子似乎沒事。

2

看起來你已經上了$data變量額外的美元符號,應該是:

success: function(data) { 
    $("#result").data(data); 
} 
4

它應該是:

success: function(data) { 

    $("#result").html(data); 
}