2010-07-22 76 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