Проверка за заето име при регистрацията с аякс
Автор: mute
Това няма да е точно урок а по скоро код как с AJAX да проверим дали потребилското име е заето при регистрация и то без да презареждаме страницата.
form.html
<html>
<head>
<script src=chekname.js></script>
</head>
<body>
<form>
First Name:
<input type="text" id="txt1"
onblur="showHint(this.value)">
</form>
<p>Името е: <span id="txtHint"></span></p>
</body>
</html>chekname.js
var xmlHttp
function showHint(str)
{
if (str.length<=3)
{
document.getElementById("txtHint").innerHTML=""
return
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getname.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}С следния javascript правим заявка към getname.php които проверява дали потребителското име е заето и връща надпис СВОБОДНО или ЗАЕТО
getname.php
<?php
$link=mysql_connect('localhost',$user,$password);
$db=mysql_select_db($database);
$name=$_GET['q'];
$sql="SELECT username FROM phpbb_users WHERE username='$name'";
$q=mysql_query($sql);
$broi=mysql_num_rows($q);
if($broi==0){echo "СВОБОДНО";}
else {echo "ЗАЕТО";}
?>

