Я реализовал следующий jQuery-вызов ajax и запрос php / mysql, чтобы проверить, не используется ли уже «имя пользователя», но независимо от ввода, мне кажется, что я получаю «valid» даже при вводе значений, которые определенно не являются в базе данных.
Упрощенный HTML / JQuery:
<script type="text/javascript">
$(document) . ready(function(){
$('#username') . keyup(username_check);
});
function username_check(){
var username = $('#username') . val();
if(username == "" || username . length < 4){
$('#username') . css('border', '1px #CCC solid');
$('.tick') . hide();
}else{
jQuery . ajax({
type: "POST",
url: "content/check.php",
data: 'username='+ username,
cache: false,
success: function(response){
if(response == 1){
$('#username') . css('border', '3px #C33 solid');
$('.tick') . hide();
$('.cross') . fadeIn();
}else{
$('#username') . css('border', '3px #090 solid');
$('.cross') . hide();
$('.tick') . fadeIn();
}
}
});
}}
</script>
<div class="span-24 last"><h3 style="text-align: center" id="reveal">Existing Customer? Click Here</h3>
<form action="lookup" method="post" id="lookup">
<fieldset style="width: 55%; margin: auto;">
<legend>Customer Lookup</legend>
<div class="btn">
<label for="username">Customer ID: </label>
<input type="text" name="username" id="username" />
<img class="tick" src="images/tick.png" width="16" height="16"/>
<img class="cross" src="images/cross.png" width="16" height="16"/>
<br />
<br />
<div class="tick"><input type="submit" value="Lookup" /></div>
</div><!--.btn-->
</fieldset>
</form>
Содержание content / check.php:
connect();
$username = $_POST['username'];
$sql = "SELECT * from `custinfo` where `custid` = :un ";
$stmt = $conn->prepare($sql);
$stmt->execute(array('un' => $username));
$num = $stmt->rowCount();
echo $num;
В работе с просто check.php, я получаю значение 1, когда ‘имя пользователя’ найдено в БД, и 0, когда его нет — пока все хорошо. но независимо от того, что значение считается действительным (то есть, я получаю зеленую рамку и отметку) рядом с полем имени пользователя.
Любые мысли или предложения будут очень признательны.
Заранее спасибо,
-луч
Задача ещё не решена.
Других решений пока нет …