2017-03-14 18 views
1

Ich versuche, die Existenz eines bereits in meiner Anwendung registrierten Benutzern mit jQuery + Ajax + POST zu überprüfen.jQuery PHP: Überprüfen Sie, ob der Benutzername bereits existiert

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'; 
} 
?> 

Ich schließe nicht class.user .php Ursache Es behandelt nur die PDO-Verbindung, wenn ich die if(data.html == 'true') die Verbindung Arbeit wie erwartet entfernen und die Nachricht herauskommen.

Verhalten

Der Code funktioniert, wenn ich entfernen Sie die if(data.html == 'true'). aber damit macht es nichts, keine Fehler in der Konsole. Ich denke, der Fehler liegt in der Art und Weise, wie ich mit dem PHP-Teil hantiere. Irgendwelche Vorschläge?

+1

Sie den Benutzernamen 'Funktion checkUserExist (uname) nicht gesendet { .post $ (“ ../ core/lib/checkUserExist.php ", {Benutzername: uname}, Funktion (Daten) {...' – splash58

+0

Ich habe unerwartete Token-Funktion – andreaem

+0

Ich habe Komma verpasst – splash58

Antwort

2

Da Sie String nicht HTML zurückkehren, so dass Sie wie unten zu tun haben: -

$.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

danke für die antwort, mit ihrem vorschlag bekomme ich keine warnung bezüglich des benutzers exist – andreaem

+0

Ok, war ein Tippfehler im Dateipfad, jetzt funktioniert es wie erwartet, danke! – andreaem

+0

@andreaem froh, dir zu helfen :) :) –

Verwandte Themen