2010-07-22 2 views
1

Я пытаюсь сделать некоторые действительно основные AJAX, используя PHP & jQuery, но по какой-то причине, когда я ввожу текст в поле ввода и нажимаю кнопку, я всегда получаю нулевые данные обратно. Что я делаю не так?Почему этот 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

+0

Это то, о чем я не получаю ответа. Его действительно wierd – jamone

ответ

7

Я думаю, что проблема лежит здесь, но я не использовал AJAX для в то время как, поэтому я не смог полностью пройти код AJAX:

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

Вы должны быть вторя json_encode($return);

echo json_encode($return);

этом следует надеяться исправить. Хотя я не знаю, почему вы зацикливаете эти данные 100 раз ... но да.

+0

Это исправлено. Я зацикливаю данные 100 раз, просто создаю большую полезную нагрузку и просто хочу что-то отправить для этого теста. – jamone

Смежные вопросы