2017-03-16 13 views
0

私はちょうどユーザー名が既に存在するかどうかチェックしようとしています、基本的な考え方は、フォームが送信されると、私のajaxコードはcheckUsername.phpに接続し、checkUsername.phpは自分のデータベースに行き、既に存在し、スパンを返します。なぜ私のajaxコードが実行されないのですか?

$.ajax({ 
     url: "checkUsername.php", 
     type: "post", 
     data: {"usernameCheck": v1}, 
     dataType:"text", 
     success:function(data){ 
    alert("system avaliable!!"); 
    if($("#status-not-available").val(data) == "no"){ 
     $('#username').css({'border' : '4px solid red'}); 
     checkUsername = false; 
    } 
    else{ 
     $('#username').css({'border' : '4px solid white'}); 
    } 
     }, 
     fail:function(data){ 
    alert("system not avaliable"); 
     }, 
    }); 

PHP:

$database = new SQLite3('myDatabase.db'); //setup connection 
$usernameCheck = $_POST['usernameCheck']; //get the username they input 
$stmt = $database->prepare("SELECT * FROM users WHERE username = :usernameCheck"); 
$stmt->bindValue(':usernameCheck',$usernameCheck,SQLite3_TEXT); 
$row = $stmt->execute()->fetchArray(); 

if(isset($row['username'])){ 
    echo "<span class='status-not-available'>no</span>"; 
} 
else{ 
    echo "<span class='status-not-available'>yes</span>"; 
} 
+0

エラーが生じましたか? – Mazz

+0

_何かが起こる必要がありますか? – Tom

+0

'v1'とは何ですか?要求の本文に? –

答えて

0

アヤックスのdataType:"text"ので、エラーが発生しているあなたはまた、このhtmlDOMにロードされていない応答としてhtmlを戻ってきている.But textとして応答を返すようにしたいことを意味します。

JS

$.ajax({ 
     url: "checkUsername.php", 
     type: "post", 
     data: {"usernameCheck": v1}, 
     dataType:"text", 
     success:function(data){ 
    alert("system avaliable!!"); 
    if(data == "no"){ 
     $('#username').css({'border' : '4px solid red'}); 
     checkUsername = false; 
    } 
    else{ 
     $('#username').css({'border' : '4px solid white'}); 
    } 
     }, 
     fail:function(data){ 
    alert("system not avaliable"); 
     }, 
    }); 

PHP

$database = new SQLite3('myDatabase.db'); //setup connection 
$usernameCheck = $_POST['usernameCheck']; //get the username they input 
$stmt = $database->prepare("SELECT * FROM users WHERE username = :usernameCheck"); 
$stmt->bindValue(':usernameCheck',$usernameCheck,SQLite3_TEXT); 
$row = $stmt->execute()->fetchArray(); 
if(isset($row['username'])){ 
echo "no";//just send response as text rather than html 
} 
else{ 
echo "yes"; 
} 
0

はあなたにid status-not-availableでないDOM要素を持って、そのあなたのAjaxのレスポンスと、それは、文字列であるので、単に送るだけyesまたはnoアヤックスからそれに応じて

if(data == "no"){ 
関連する問題