Benim web sitesi ana sayfasında, ben yeni bir kullanıcı kayıt formu var. Bu alan "Kullanıcı Adı" içeriyor. Kullanıcı adını girer ve odak başka bir alana işaret olduğunda, bir AJAX kod girilen kullanıcı adı ile herhangi bir kullanıcı zaten var olup olmadığını denetler yürütülür.
Ben kullanıyorum AJAX kodu şudur:
function toggle_username(userid) {
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
handle = document.getElementById(userid);
var url = 'ajax.php?';
if(handle.value.length > 0) {
var fullurl = url + 'do=check_username_exists&username=' + encodeURIComponent(handle.value);
http.open("GET", fullurl, true);
http.send(null);
http.onreadystatechange = statechange_username;
}
else
{
document.getElementById('username_exists').innerHTML = '';
}
}
Yukarıdaki kod tarafından çağrılan dosya "AJAX.php", bu gibi:
<?php
mysql_connect ('localhost', 'MyServer', 'user1');
mysql_select_db('globaldb');
$do = $_GET['do'];
switch($do) {
case 'check_username_exists':
if(get_magic_quotes_gpc()) {
$username = $_GET['username'];
}else{
$username = addslashes($_GET['username']);
}
$count = mysql_num_rows(mysql_query("SELECT * FROM `student_login` WHERE `username`='".$username."'"));
header('Content-Type: text/xml');
header('Pragma: no-cache');
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<result>';
if($count > 0) {
$_SESSION['UserExists'] = "true";
}else{
$_SESSION['UserExists'] = "false";
}
$_SESSION['UserExists'] = "false";
echo '</result>';
break;
default:
echo 'Error, invalid action';
break;
}
?>
Benim kayıt formu, sadece kullanıcı adı giriş kutusunun altında, ben mesajları göstermek nerede bir bölümü tanımlamak istiyorum:
Bu isimde kullanıcı var, veya
Adı mevcuttur.
Benim ana sayfasında, ben aşağıdaki kodu kullanıyorum:
<input name="username" type="text" id="username" onchange="toggle_username('username')" style="width:150px;" maxlength="40" size="22" >
<?PHP
if ($_SESSION['UserExists'] == "true")
{
echo "<div id='username_exists' style='font-size: 11px;font-weight: bold;color:red'>User with this name unavailable.</div>";
}
else
{
echo "<div id='username_exists' style='font-size: 11px;font-weight: bold;color:darkgreen'> User with this name is available </div>";
}
?>
Ana sayfa üzerinde kod ve ben verdi üstüne ilk kod bloğu (JavaScript) oluşur.
Bu kod çalışmıyor. Ve ben neden ben PHP bloğunda mesajlar dahil ettik duyuyorum sanırım. Sunucu tarafı olmak, mesajları gösteren değil.
Bana bu sorunu nasıl ele iletebilirsiniz. AJAX çağrıları JavaScript kodunu değiştirmek veya PHP şey dahil olsun.
Ayrıca, aslında ne istiyorum yeşil veya kırmızı renkte mesajları göstermek için olduğunu lütfen unutmayın. Kullanıcı adı varsa, kırmızı renkte sonra başka yeşil.