2010-07-22 6 views
1

J'essaie de faire un AJAX vraiment basique en utilisant PHP & jQuery, mais pour une raison quelconque, lorsque je saisis du texte dans le champ de saisie et que je clique sur le bouton, je reçois toujours des données nulles. Qu'est-ce que je fais mal?Pourquoi ce jQuery ajax échoue-t-il?

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

Utilisez-vous FireBug? Regardez la réponse à la demande et commencez à partir de là. – Maz

+0

C'est la chose que je ne reçois aucune réponse. C'est vraiment bizarre – jamone

Répondre

7

Je pense que le problème est ici, mais je ne l'ai pas utilisé AJAX pour une alors, donc je ne pouvais pas passer complètement le code AJAX:

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

Vous devriez être faisant écho à la json_encode($return);

echo json_encode($return);

Cela devrait nous l'espérons corriger. Bien que je ne sais pas pourquoi vous bouclez ces données 100 fois ... mais oui.

+0

Cela l'a réparé. Je boucle les données 100 fois juste créer une plus grande charge utile et juste avoir quelque chose à envoyer pour ce test. – jamone