使用ajax发送和返回数据

时间:2012-04-28 14:59:51

标签: php jquery ajax

我认为我做错了因为我想用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);
        });
      });

如果我输入'Notch',true,如果其他类似“fslfjslkfjls”的内容应为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,即使它不是真的。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

尝试:

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

你需要在ajax中发送对象 - 它是请求变量的字典

答案 1 :(得分:0)

你也可以使用: .serialize()

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

});

Encode a set of form elements as a string for submission

答案 2 :(得分: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文件检查您的控制台,或者您可以在代码中使用它。

希望您可以使用上面的代码进行检查。