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);
        });
      });

如果我输入 '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,即使它不是 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

你也可以使用:.serialize()

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

});

将一组表单元素编码为字符串以进行提交

于 2012-04-28T15:20:28.220 回答
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 回答