2017-03-14 146 views
1

我正在嘗試檢查是否存在已使用jQuery + Ajax + POST在我的應用程序中註冊的用戶名。jQuery PHP:檢查用戶名是否已經存在

HTML

<div class="form-group"> 
    <label for="username" class="col-md-3 control-label">Username</label> 
    <div class="col-md-9"> 
     <input type="text" id="username" class="form-control" name="username" placeholder="Username"> 
    </div> 
</div> 
<div class="col-sm-9 col-sm-offset-3" id="userCheck"> 
    <div class="alert alert-info" id="userCheckLabel"></div> 
</div> 

jQuery的

$('#username').focusout(function() { 
    var username = $('#username').val(); 
    checkUserExist(username); 
}) 
function checkUserExist($uname) { 
    $.post("../core/lib/checkUserExist.php", function(data) { 
    if(data.html == 'true') { 
     $('#userCheck').slideDown("slow"); 
     $('#userCheckLabel').text("This user already exist!") 
    } 
}); 

PHP

<?php 
require_once('../../core/class.user.php'); 
$user = new USER(); 
$uname = $_POST['username']; 

$stmt = $user->runQuery("SELECT user_nameFROM users WHERE user_name=:uname "); 
$stmt->execute(array(':uname'=>$uname)); 
$row=$stmt->fetch(PDO::FETCH_ASSOC); 

if($row['user_name']==$uname) { 
    print 'true'; 
} else { 
    print 'false'; 
} 
?> 

我不包括class.user .php的原因它只處理PDO連接,如果我刪除if(data.html == 'true')連接工作正如所料,並出現消息。

行爲

的代碼工作,如果我刪除if(data.html == 'true')。但有了它,它不會做任何事情,控制檯中沒有錯誤。所以我認爲錯誤在於我處理PHP部分的方式。 有什麼建議嗎?

+1

你不發送的用戶名'函數checkUserExist信息(uname){$ .post的(」 ../核心/ lib/checkUserExist.php「,{用戶名:uname},函數(數據){...' – splash58

+0

我得到意想不到的令牌功能 – andreaem

+0

我錯過了逗號 – splash58

回答

2

既然你正在返回的字符串不是HTML,所以你必須做如下圖所示: -

$.post("../core/lib/checkUserExist.php",{username: uname }, function(data) { 
    console.log(data);// check this and let me know the output 
    if(data == 'true') { // or try if(data) 
     $('#userCheck').slideDown("slow"); 
     $('#userCheckLabel').text("This user already exist!") 
    } 
}); 
+0

感謝您的回覆,使用您的建議我沒有得到有關用戶存在的警報 – andreaem

+0

好吧,是文件路徑中的錯字,現在它按預期工作,謝謝! – andreaem

+0

@andreaem很高興幫助你:) :) –

相關問題