2016-05-01 5 views
0

jQueryの$ .postを使用して、データベースからユーザー名の可用性を確認しようとしています。 パスが間違っているか、PHPスクリプトが間違っているかどうかわかりませんが、おそらくデータが空白またはnullのまま返されます。何故ですか?

JSファイル:

$(document).ready(function(){ 


$("#signup_username").bind("keyup blur",function(){ 
    $("#loading_img_username").show(); 
    var prompt_username = $("#signup_username").val(); 
    if(prompt_username != ''){ 

     $.post('php/check.php', {username: prompt_username} , function(data){ 
      $("#signup_username_status").html(data); 
      $("#loading_img_username").hide(); 

     }).error(function(){ 
      $("#loading_img_username").hide(); 
      $("#signup_username_status").html("<span style='color:#cc2000;'><i class='glyphicon glyphicon-remove'></i> Cannot verify username availability.</span>"); 
     }); 
    } else{ 
     $("#signup_username_status").html("<span style='color:gold;'><i class='glyphicon glyphicon-info-sign'></i> Provide your username.</span>"); 
     $("#loading_img_username").hide(); 
    } 


    }); 
}); 

PHPファイル:

<?php 
$user = $_POST['username']; 
    echo $user; 

私はあなたが入力フィールドにプロンプ​​トどんなことを承知しています:データは、コールバック関数に渡す対象として

#signup_username
が出力されます$ .post

+0

コンソールでコールを見ましたか?あなたが知っていれば、あなたのパスが正しいかどうかを知ることができます。そうすれば、リソースを見つけることができなかった場合にエラーが出るでしょう。次に、サーバーに送信している内容(投稿要求のヘッダー)を確認します。 $ _POSTのすべてのvarsをphpで印刷し、 'username'がリストされているかどうか確認することもできます。 – scrappedcola

+0

が見つかりました。問題はパス名にあります。しかし、私はこのURLを簡素化することを知りません:** http://localhost/project/app/views/login_register/js/php/check.php** javascript 申し訳ありません、私は初心者です。 –

答えて

0

提案で1:

jQueryポスト関数がデータ型を使用して情報を受け取っていますが、この時点でデータ型 "text"が使用されています。私はXMLやJSONを使うべきです。なぜなら、それは読みやすくなるからです。

$.post('url', {username: prompt_username}, function(data) { 
    $("#signup_username_status").html(data.username); 
    $("#loading_img_username").hide(); 
}, 'JSON'); 

あなたは、あなたがこれを行う場合はPHPでデータをエンコードする必要があります:

$user = $_POST['username']; 
die(json_encode(array('username'=>$user))); 

提言2:

あなたのjQueryのポスト要求は動作しませんか? .error関数を使ってデバッグしてください。使用方法がわかっていれば便利です!エラーを出力する方法の例を次に示します。

$.post('url', {username: prompt_username}, function(data) { 
    $("#signup_username_status").html(data.username); 
    $("#loading_img_username").hide(); 
}, 'JSON').error(function(a,b,c) { 
    console.log(a,b,c); 
}); 
関連する問題