2010-07-22 74 views
1

我正在嘗試使用PHP & jQuery做一些非常基本的AJAX,但由於某些原因,當我在輸入字段中輸入文本並單擊按鈕時,我總是收到空數據。我究竟做錯了什麼?爲什麼jQuery ajax失敗?

WebService.php:

<?php 
    $return['ReturnString'] = $_POST['SearchString']; 
    for ($i = 1; $i < 100; $i++) 
    { 
     $return['ReturnString'] = $return['ReturnString'] . $_POST['SearchString']; 
    } 
    return json_encode($return); 
?> 

HTML:

<html> 
    <head> 
     <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
     <script type="text/javascript"> 
      google.load("jquery", "1"); 
     </script> 
     <script type="text/javascript" src="Scripts/script.js"></script> 
     </head> 
    <body> 
     <form> 
      <div> 
       <input type="text" id="txtJavaPHP" /> 
       <input type="button" id="btnJavaPHP" value="Go" /> 
       <br /> 
       <br /> 
       <span id="spanJavaPHP"></span> 
      </div> 
     </form> 
    </body> 
    </html> 

的script.js:

$(document).ready(SetupButtonClicks); 
function SetupButtonClicks() {$('#btnJavaPHP').click(DoPHP);} 

    function DoPHP() { 
    $.ajax({ 
     type: 'POST', 
     contentType: 'application/json; charset=utf-8', 
     url: 'WebService.php', 
     dataType: 'json', 
     data: { 
      SearchString: $('#txtJavaPHP').val() 
     }, 
     success: function (data) { 
      if (data == null) 
       $('#spanJavaPHP').text("Data is null"); 
      else 
       $('#spanJavaPHP').text(data.ReturnString); 
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      $('#spanJavaPHP').text('There was an error: ' + errorThrown); 
     } 
    }); 
    return false; 
} 
+1

你使用FireBug嗎?查看請求響應並從那裏開始。 – Maz 2010-07-22 13:23:13

+0

這是我沒有得到任何迴應。它真的很奇怪 – jamone 2010-07-22 13:24:40

回答

7

我認爲問題就出在這裏,但我沒有使用AJAX的雖然,所以我無法完全通過AJAX代碼:

echo $return['ReturnString']; 
return json_encode($return);

你應該呼應json_encode($return);

echo json_encode($return);

這樣應該可以修復它。雖然我不知道你爲什麼要循環這些數據100次......但是。

+0

這固定它。我正在循環數據100次,只是創建一個更大的有效負載,並且只需要發送一些內容以用於此測試。 – jamone 2010-07-22 13:29:26