مشکل با AJAX Validation

smtp_ftp

Member
سلام دوستان عزیزم خسته نباشید


شرمنده که باز مزاحمتون شدم راستش من در این باره خیلی تحقیق کردم اما چیزی دستگیرم نشد گفتم که سوال بپرسم


من یک فرم ثبت نام دارم که می خوام AJAX Validation براش بذارم مثلا مثل ثبت نام همین سایت که موقعی که داری نام کاربری رو تایپ می کنی همون موقع تو دیتا بیس می گرده اگر امکانش باشه تایید می کنه من هم همچین چیزی می خوام و برای چند تا چیز می خوام ولیدیشن کنم


1- تکراری نبودن کد ملی با استفاده از دیتابیس
2- عدد بودن و 10 رقم بودن کد ملی
3- درست بودن ایمیل
4- تایپ شدن بعضی از موارد یعنی حتما این موراد وارد بشن


می دونم که خیلی مزاحمتون شدم اما باور کنید خیلی حیاتی هستش این موضوع برام و خیلی هم عجله دارم آبروم در خطره قول میدم بعد این پروژه خوب یاد بگیرم می دونم که باید یاد بگیرم اما الان اصلا وقت نیس خواهش می کنم که کمکم کنید
 

resistance

New Member
01$(document).ready(function()//When the dom is ready
02{

03$("#username").change(function()

04{ //if theres a change in the username textbox

05

06var username = $("#username").val();//Get the value in the username textbox

07if(username.length > 3)//if the lenght greater than 3 characters

08{

09$("#availability_status").html('<img src="loader.gif" align="absmiddle">&nbsp;Checking availability...');

10//Add a loading image in the span id="availability_status"

11

12$.ajax({ //Make the Ajax Request

13 type: "POST",

14 url: "ajax_check_username.php", //file name

15 data: "username="+ username, //data

16 success: function(server_response){

17

18 $("#availability_status").ajaxComplete(function(event, request){

19

20 if(server_response == '0')//if ajax_check_username.php return value "0"

21 {

22 $("#availability_status").html('<img src="available.png" align="absmiddle"> <font color="Green"> Available </font> ');

23 //add this image to the span with id "availability_status"

24 }

25 else if(server_response == '1')//if it returns "1"

26 {

27 $("#availability_status").html('<img src="not_available.png" align="absmiddle"> <font color="red">Not Available </font>');

28 }

29

30 });

31 }

32

33 });

34

35}

36else

37{

38

39$("#availability_status").html('<font color="#cc0000">Username too short</font>');

40//if in case the username is less than or equal 3 characters only

41}

42return false;

43});

44});


این هم کد php :
include('database_connection.php');
02//Include The Database Connection File

03

04if(isset($_POST['username']))//If a username has been submitted

05{

06$username = mysql_real_escape_string($_POST['username']);//Some clean up :)

07

08$check_for_username = mysql_query("SELECT userid FROM member WHERE username='$username'");

09//Query to check if username is available or not

10

11if(mysql_num_rows($check_for_username))

12{

13echo '1';//If there is a record match in the Database - Not Available

14}

15else

16{

17echo '0';//No Record Found - Username is available

18}

19}


 

پیوست ها

  • live username availability check.zip
    9.6 کیلوبایت · بازدیدها: 6
آخرین ویرایش:

smtp_ftp

Member
بستگي داره از چه نوع 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=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;
}




این هم از کد 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 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>
 

جدیدترین ارسال ها

بالا