2011-03-04 156 views
0

我是學習jquery.ajax的新手。通過一些教程,我自己嘗試了一些代碼,但遇到了一些麻煩。所以我尋求幫助。jquery.ajax發佈問題

我試圖做到這一點:打開a.php,從div#send發送html數據到b.php,然後返回數據並顯示在div#result

a.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script> 
<script language="javascript"> 
$(document).ready(function() {  
var params = "value=" + $('#send').text(); 
$.ajax({   
    url:'b.php',   
    type:'post',     
    dataType:'html',    
    data:params,     
    success:data  
    }); 
function data (html) { 
var str=html.send; 
alert(html); 
$("#result").html(str); 
} 
}); 
</script> 
<body> 
<div id="result"></div>// I need return 'this is an apple.' 
<div id="send">apple</div> 

b.php

<?php 
echo 'This is an '.$_REQUEST['value'].'.'; 
?> 

回答

0

從b.php返回DATAS,你必須做一個echo

+0

沒有什麼變化,返回字段仍然是空白。 – 2011-03-04 21:13:30

+0

在函數數據中,執行'alert(html);'來查看數據是否成功返回。 – Xavinou 2011-03-04 21:16:06

1

你不與發送任何有效參數ajax請求。如果你想的#send的文本內容,您需要使用:

$('#send').text(); 

雖然這只是給你一個字符串,因此它必須是:

var params = "value=" + $('#send').text(); 

除此之外,$_REQUEST是一個數組,所以你必須使用類似$_REQUEST['value']

第三點是你的成功功能太複雜了,錯了(html.send不存在),它可能只是:

success: function(msg){ 
    $("#result").html(msg); 
} 
+0

@Xavinou,謝謝,我用你的代碼改了我的代碼,但是我可以得到一個'alert'框:'這是一個蘋果',而不是'div#result'。 – 2011-03-04 21:26:59

+0

@yuli chika:$(「#result」)。html(html); – Xavinou 2011-03-04 21:29:51

+0

@yuli chika是的,我已經注意到你的成功功能不正確,所以我修改了我的答案。 – jeroen 2011-03-04 21:31:08