0

PHPで返してほしいものに対して、私はこれを間違っていると思います。私がやろうとしているのは、ユーザー名がajax経由で支払われているかどうかを確認することです。

私がこれを行うと、それ自体で動作するPHP:

$username = $_POST['username']; 

     function checkPlayer($player) {
        $mcURL = 'http://www.minecraft.net/haspaid.jsp?user=';
        $auth = file_get_contents($mcURL . $player);

        if (trim($auth) == "true") {
          echo $player. ' is ';
        } else {
          echo $player. ' is ';
        }

        return $auth;
      }

      echo checkPlayer($username);

$username値を のような静的なものに変更すると、私が望むことを行い$username = "Notch";ます。しかし、私が使用$_POST['username']し、次のJSを使用する場合はそうではありません:

$(document).on('keyup', 'input', function(){

        var inputVal = $('input').val();
        $.post('auth.php', inputVal, function(data){
          console.log(input.Val + ' is ' data);
        });
      });

' fslfjslkfjls true' のような何かがfalse. HTML:

<form>
    <input type="text" name="username" value="" class="authcheck">
  </form>

何が間違っていますか?

更新: galchen の回答の後、(ちょっと) 動作するようになりました (エラーは発生しません)。

var inputVal = $('input').val();
        $.post('auth.php', { 'username' : inputVal }, function(data){
            console.log(inputVal + ' is ' + data);
        });

しかし、今では、true でなくても、すべての入力が true を返します。どうすればこれを修正できますか?

4

3 に答える 3

3

試す:

$.post('auth.php', { 'username' : inputVal }, function(data){
    console.log(input.Val + ' is ' data);
});

オブジェクトをajaxで送信する必要があります-これはリクエスト変数の辞書です

于 2012-04-28T15:03:10.617 に答える
0

予想どおり、ajax 呼び出しで正常に動作するこのコードを使用できます。

auth.php:

 $username = $_POST['username']; 
  function checkPlayer($player) {
    $mcURL = 'http://www.minecraft.net/haspaid.jsp?user=';
    $auth = file_get_contents($mcURL . $player);

    return $auth;
  }

  echo checkPlayer($username);

これを ajax 応答の html として使用します。

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    </head>
    <body>
    <form>
    <input type="text" name="username" value="" class="authcheck">
  </form>
<script type="text/javascript">
    $(document).on('keyup', 'input', function(){
        var inputVal = $('input').val();
        $.post('auth.php', { 'username' : inputVal }, function(data){
            console.log(inputVal +' is '+ data);
        });
      });
    </script>
    </body>
</html>

不要なコードを除外するように php 部分を変更しただけで、上記の html ファイルを使用してコンソールを確認したり、コードで使用したりできます。

上記のコードで確認できることを願っています。

于 2012-04-28T19:12:19.237 に答える
0

あなたも使用することができます:.serialize()

$.post('auth.php', { $("form").serialize() }, function(data){
console.log(input.Val + ' is ' data);

});

一連のフォーム要素を送信用の文字列としてエンコードする

于 2012-04-28T15:20:28.220 に答える