سلام دوست عزیز خسته نباشید من این پست رو در انجمن دیگه ای زده بودم اما به نتیجه نرسیدم
من یک فرم ثبت نام دارم که می خوام به صورت ajax validation انجام بشه مثلا چک کنه که کد ملی تکراری هست یا نه و یا چک کنه که ایمیل معتبر هست یا نه یا مثلا عددی بودن یک فیلد رو ایجاد کنه و یا پر شدن یک فیلد
من الان چک کردن کد ملی و ایمیل رو به صورت آژاکس انجام میدم هیچ مشکلی هم نداره و عددی بودن فیلد ها رو با جاوا اسکریپت انجام دادم فقط برای پر یا خالی بودن فیلد ها مشکل دارم لطفا کمکم کنید
و مشکل مهم تر اینکه من می خوام فرم وقتی ارسال بشه که هیچ مشکلی نداشته باشه یعنی همه چیز ولید شده باشه و فیلد های ضروری پر شده باشن در ضمن من کد های خودمم براتون گذاشتم خواهش می کنم کمکم کنید خیلی حیاتی هستش و خیلی عجله دارم
این هم از کد جاوا اسکریپت
کد AJAX.PHP
این هم از کد HTML
من یک فرم ثبت نام دارم که می خوام به صورت ajax validation انجام بشه مثلا چک کنه که کد ملی تکراری هست یا نه و یا چک کنه که ایمیل معتبر هست یا نه یا مثلا عددی بودن یک فیلد رو ایجاد کنه و یا پر شدن یک فیلد
من الان چک کردن کد ملی و ایمیل رو به صورت آژاکس انجام میدم هیچ مشکلی هم نداره و عددی بودن فیلد ها رو با جاوا اسکریپت انجام دادم فقط برای پر یا خالی بودن فیلد ها مشکل دارم لطفا کمکم کنید
و مشکل مهم تر اینکه من می خوام فرم وقتی ارسال بشه که هیچ مشکلی نداشته باشه یعنی همه چیز ولید شده باشه و فیلد های ضروری پر شده باشن در ضمن من کد های خودمم براتون گذاشتم خواهش می کنم کمکم کنید خیلی حیاتی هستش و خیلی عجله دارم
این هم از کد جاوا اسکریپت
کد:
[/B]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=xmlhttp.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;
}[B]
کد AJAX.PHP
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 existinginclude("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
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>