نوشته شده توسط
imanitc
بستگي داره از چه نوع AJAX Validation استفاده ميکني لااقل يه کدي چيزي بذار
سلام دوست عزیز خسته نباشی خیلی ممنون که کمکم کردی
می خوام که بازم کمکم کنید
راستش من الان می تونم به طور آژاکس تکراری بودن کد ملی رو چک کنم و پیغام بدم و همچنین معتبر بودن ایمیل رو و همچنین با کدی که دادید میتونم این امکان رو ایجاد کنم که برای بعضی فیلدها فقط عدد تایپ بشه
فقط دوتا سوال دارم اینکه
1- پر یا خالی بودن فیلد ها رو چطوری چک کنم؟
2- من میخوام که باتن ثبت نام وقتی زده شد فرم ارسال نشه یعنی صفحه رفرش نشه طوری این امکان ایجاد بشه که اگر زد و اگر تو فرم اشکالی وجود داشت کنار فیلد هاتوضیح بده یعنی مثلا اگر فیلدی خالی بود بگه که پرش کنید
و اگر همه ایرادات رفع شد فرم رو ارسال کنه برای ثبت در دیتا بیس اگر کمکم کنی خیلی ممنونت میشم
این هم از کد جاوا اسکریپت
function showUser(str)
{
if (str=="")
{
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=xmlht tp.responseText;
}
}
xmlhttp.open("GET","include/ajax.php?q="+str,true);
xmlhttp.send();
}
function checkemail(str)
{
if (str=="")
{
document.getElementById("txtHintemail").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("txtHintemail").innerHTML= xmlhttp.responseText;
}
}
xmlhttp.open("GET","include/ajax.php?email="+str,true);
xmlhttp.send();
}
function numbersonly(myfield, e, dec)
{
var key;
var keychar;
if (window.event)
key = window.event.keyCode;
else if (e)
key = e.which;
else
return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) ||
(key==9) || (key==13) || (key==27) )
return true;
// numbers
else if ((("0123456789").indexOf(keychar) > -1))
return true;
// decimal point jump
else if (dec && (keychar == "."))
{
myfield.form.elements[dec].focus();
return false;
}
else
return false;
}
این هم از کد ajax.php
<?php
function checkEmail($email) {
if(preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email)){
list($username,$domain)=split('@',$email);
if(!checkdnsrr($domain,'MX')) {
return false;
}
else
{
return true;
}
}
}
if ($_GET['q'])
{
$national_code = $_GET["q"];
// checking name
/*if (empty($name))
{
print 'Please enter your name.';
exit;
}*/
// checking for national code existing
include("config.php");
$result = mysql_query("SELECT * FROM reg1 WHERE melicode='".$national_code."'");
if (mysql_num_rows($result) >= 1)
{
print '<font color="red" size="3pt" face="tahoma">'.'اين كد ملي قبلا وارد شده است.'."</font>";
// exit;
}
else
{
print '<font color="green" size="3pt" face="tahoma">'.'اين كد قابل ثبت است.'."</font>";
}
mysql_close();
// inserting into database
//mysql_query("INSERT INTO users VALUE ...");
}
elseif ($_GET['email'])
{
$email_address = $_GET['email'];
if (filter_var($email_address, FILTER_VALIDATE_EMAIL)) {
// The email address is valid
print '<font color="green" size="3pt" face="tahoma">'.'ايميل معتبر است.'."</font>";
} else {
// The email address is not valid
print '<font color="red" size="3pt" face="tahoma">'.'ايميل نامعتبر است.'."</font>";
}
}
?>
و این هم از کد مربوط به فرم
کد HTML:
<input type="text" name="tfregtel" id="tfregtel" style="border:#000 1px solid" onkeypress="return numbersonly(this, event)" />
<input type="text" name="tfregmelicode" id="tfregmelicode" style="border:#000 1px solid" value="" onChange="showUser(this.value)" onkeypress="return numbersonly(this, event)" />
<div id="txtHint" ></div>
<input type="text" name="tfregemail" id="tfregemail" style="border:#000 1px solid" onChange="checkemail(this.value)" />
<div id="txtHintemail" ></div>