PDA

View Full Version : سوال: چگونگی چک کردن یوزر نیم تکراری قبل از زدن دکمه ارسال



.DaryA.
دوشنبه 09 آبان 1390, 00:53 صبح
سلام به همه

من یه فرم ثبت نام درست کردم . میخوام قبل از اینکه کاربر روی دکمه ثبت نام کلیک کنه . سیستم بصورت اتوماتیک جستجو کنه و اگه نام کاربری تکراری بود . بهش هشدار بده .

ممنون میشم کمکم کنید. مرسی

pejman_view
دوشنبه 09 آبان 1390, 03:02 صبح
سلام دوست من،

این نیاز به داشتن علم کافی بر تکنولوژی AJAX (ای جکس و یا شاید به قول بعضی ها آژاکس) و کمی جاوا اسکریپت است.
چون PHP زبان Server-Side یا زبان قابل اجرا در سرور است اطلاعات فرم ثبت نام حتماً بایستی یکبار به سمت سرور ارسال شوند و بعد از پردازش نتیجه را نشان دهد. اما جاوا اسکریپت زبان Client-Side است. یعنی فقط در مرورگرها قابل اجراست. جواب دقیق شما این است با جاوا اسکریپت اطلاعات را پردازش می کنید. سپس با تکنولوژی مبتنی بر ای جکس می توانید این اطلاعات را برای هسته PHP بفرستید تا پردازش های لازمه را انجام داده و نتیجه را بازگرداند.

بنابراین توصیه من اینه که شما اول زبان PHP را بطور کامل فرا بگیرید سپس چون PHP آنقدر کامل نیست و نیاز برنامه نویسی را به تنهایی برطرف نمی کند زبان های تحت وب دیگر مانند جاوا اسکریپت و ای جکس را فرا بگیرید.

با تشکر...

mohsen6500
دوشنبه 09 آبان 1390, 11:02 صبح
سلام درادامه صحبت دوستمون بگم که اینم یک مثال ساده برای ترکیب ajax و php
این لینک برای ترکیب ajax و php هست
(http://www.w3schools.com/php/php_ajax_php.asp)
و این یکی نحوه ارتباط با database (http://www.w3schools.com/php/php_ajax_database.asp)

موفق باشید
یاعلی

رضا قربانی
دوشنبه 09 آبان 1390, 19:30 عصر
<head>
<script type="text/javascript">
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<p><b>Start typing a name in the input field below:</b></p>
<form>
First name: <input type="text" onkeyup="showHint(this.value)" size="20" />
</form>
<p>Suggestions: <span id="txtHint"></span></p>

</body>



و اینم از نام های کاربری شما که توسط آرایه شناسایی می شه :


$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";

//get the q parameter from URL
$q=$_GET["q"];

//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}

// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}

//output the response
echo $response;


و برای اینکه از بانک نام کاربری رو بخونی کافیه به بانک وصل بشی a[]=""; | نام کاربری خودت رو بندازی داخل حلقه while یعنی به این صورت :


while($row=mysql_fetch_assoc($result))

{
$a[]="'.$row["UserName"].'";

}