2016-10-12 5 views
0

問題は、このajaxが何らかの理由で空のユーザー名を渡しているか、または何か間違っているということです。空の値を渡すAjax

JS

$(document).ready(function() { 

    $("#register").click(function() { 

     var username = $("#name").val(); 
     var pst = $("#pass").val(); 

     $.ajax({ 
      url: "test.php", 
      data: {"function":"register",name:username, pass:pst}, 
      type: "POST", 
      success: function(response) { 
       switch(response){ 
        case true: { 
         alert("Hello world!"); 
         break; 
        } 
        case false: { 
         alert(""); 
         break; 
        } 
        default: { 
         alert("Something went wrong"); 
         break; 
        } 
       } 
      } 
     }); 
    }); 

}); 

私はいつも "何かが間違っていた" を取得するつもりです

<?php 
    if(isset($_POST['function'])) { 
     switch($_POST['function']) { 
      case "register": { 
       register($_POST['name'],$_POST['pass']); 
       echo $_POST['name']; 
       break; 
      } 
      case "login": { 
       login(); 
       break; 
      } 
      default: { 
       echo "Boom"; 
       break; 
      } 
     } 
    } 
    else { 
     echo "Function is not set"; 
    } 


    function register($name, $pass) { 
     if($name == "Toma") return true; 
     else return false; 
    } 

    function login() { 
     echo "<br/><br/>Test passed"; 
    } 
?> 

test.phpをファイルをファイルは、アラートeventho私は、ユーザー名として "当麻" を入力し

+3

を試してみてください。 'console.log(response);あなたのajaxの成功メソッドでは、console.log(typeof(response));おそらく、逆直列化されたブール値ではありません。 –

+1

'ajax'呼び出しがおそらく' String'を返しています。 – brso05

+0

確かに、ちょうどチェックされて、何らかの理由で文字列を返します。どんな手掛かり? @ Brso05あなたが私がしたときに同じ秒で応答してくれた笑:D –

答えて

0

PHPファイルecho $_POST['name']には、登録関数の返り値に関係なく、リクエストに対する応答があります。あなたはしたいが、あなたのコードをこのようにリファクタリングする必要があり、trueまたはfalseを表示した場合:

case "register": { 
    echo register($_POST['name'],$_POST['pass']); 
    break; 
    } 
+0

と私はどのように応答を機能自体にするのですか?さて、関数は結果を得ますか? –

+0

@TomicaUbicaあなたの応答はレジスタ関数(この場合はtrueまたはfalse)に依存します。したがって、あなたの応答はレジスタ関数が返される必要があります。 –

0

はそれをFiguratedそれは私が何でもそうですので、私はちょうど

if($name == "Toma") { echo("true"); } 
      else { echo("false"); } 

を使用し、文字列が代わりに返されますブール値の

関連する問題