2016-03-22 11 views
0

私はこの問題を2時間以上苦労しており、合理的な解決策を見つけることができます。 --->この矢印でマークされたif文を取り除くなら。その上にalert()が機能します。それは私がちょうど(真)を置くとトリガされますが、それは次の条件では動作しません。私はこの言語ではあまりよくありません。学校のプロジェクトのためにそれを終わらせてください。私はそれが何か小さいと確信していますが、猫は自分でそれを把握します。Javascript AJAX PHP if文が動作しない

Java Script Function 

    function checkLogin(str) { 


     if (str.length == 0) { 

      return; 
     } else { 

      var xmlhttp = new XMLHttpRequest(); 
      xmlhttp.onreadystatechange = function() { 
       if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
        var ret = xmlhttp.responseText; 

      ----> if (ret == "match"){ 
         alert("Login name already exists !"); 
        } 
       } 
      } 
      xmlhttp.open("GET", "loginCheck.php?q=" + str, true); 
      xmlhttp.send(); 
     } 
    } 

    PHP Code 
    /* 
    <?php 
     include 'db.inc.php'; 
     date_default_timezone_set("UTC"); 

     $login = $_REQUEST["q"]; 


     $sql = "SELECT * FROM staffMembers"; 

     if (!($result = mysqli_query($con,$sql))){ 
      die ('An Error ->' . mysqli_error()); 

     } 



      while ($row = mysqli_fetch_array($result)){ 
       $firstName = $row['nameLogin']; 
       $ret="true"; 
       if($firstName == $login){ 
        $ret = "match"; 
        break; 
       } 
      } 
     mysqli_close($con); 


     echo $ret; 
    ?> 
    */ 
+2

これはおそらくサーバーが「一致」を返さないことを意味します。その 'if'文の外側で' alert(ret); 'を試してください。何を手に入れますか? – blex

+1

すべての基本的なデバッグが完了しましたか? 'console.log(ret)'を呼び、実際に何が戻ってくるのか見てみましょう。 JSはhtmlや、あなたのサーバから吐き出されるものを理解していないことに注意してください。これは何らかの出力を受け取り、 'ret'に入れます。そのため、あなたのコードがPHP警告を出すと、その警告は' ret'の一部になります。 –

+0

次回はデバッグしようとします。私はまだ非常に緑色です。ありがとうございました –

答えて

1

PHPコードでは、おそらくmatchの空白が出力されている可能性があります。試してみてください

if (ret.trim() == "match"){ 
+0

それは感謝を助けました。 –

+0

これ以外にも、document.getElementById()。innerHTML = "" htmlのフィールドをクリアするには、これをフォローしたいと思っています。 –

+0

O.K.私はそれを得た。代わりに.value = ""を使用しました。ありがとう... –