آموزش برنامه نویسی ، پایگاه داده sql server
آموزشگاه برنامه نویسی تحلیل داده : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server


آموزشگاه برنامه نویسی مجتمع فنی تهران میرداماد : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server

آموزش Ajax > مثال های عملی کار با Ajax > کاربرد Ajax در PHP

کاربرد Ajax در PHP :

در این بخش قصد داریم ، تا با ارائه یک مثال عملی ، نحوه استفاده از دستورات Ajax در یک صفحه PHP را به صورت گام به گام ، شرح دهیم .
در این مثال یک کادر متن داریم که به تایپ کردن کاربر درون آن ، حساس است . هر زمان که کاربر کاراکتری را درون آن تایپ نماید ، این کنترل لیستی از آیتم های پیشنهادی که با آن کاراکتر شروع می شوند ، را به کاربر نمایش می دهد .
در این مثال صفحه PHP به وسیله یک دستور Ajax ، با یک فایل آماده از عناوین ارتباط برقرار کرده و اطلاعات لازم را از آن دریافت می کند .

1 ) کد تابع ( ) showHint :

هنگامی که کاربر در کادر متن موجود در صفحه PHP تایپ می کند ، به وسیله رویداد ( ) onkeyup آن ، تابع ( ) showHint اجرا می شود .
کد این تابع در جدول زیر نمایش داده شده است . کد را یکبار مرور نمایید . سپس به توضیح گام به گام هر بخش از مثال پرداخته شده است :

کد تابع
 ShowHint ( )
function showHint(str)
   {
        var xmlhttp;               //    Ajax ایجاد یک متغیر برای ذخیره کردن شی
        if (str.length==0)
            {
                 document.getElementById("txtHint").innerHTML="";
                 return;
            }

       if (window.XMLHttpRequest)
            {  //  IE7+, Firefox, Chrome, Opera, Safari          کد برای مرورگرهای   
                 xmlhttp=new XMLHttpRequest();
            }
       else
           { // 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( );
}

2 ) توضیح گام به گام کد مثال :

هر یک از بخش های کد مثال که با یک رنگ خاص مشخص شده اند ، را توضیح می دهیم :

  • این بخش کد مثال ، بررسی می کند اگر کادر متن خالی باشد ( str.length==0 ) ، تابع مقدار عنصر txtHint موجود بر روی صفحه را پاک کرده و از تابع خارج می شود .
  • این بخش از کد یک شی XMLHttpRequest را ساخته و عملیات Ajax را آغاز می کند . کد لازم برای پشتیبانی انواع مرورگرها را قرار داده ایم .
  • این بخش از کد ، بررسی می کند که آیا پاسخ درخواست Ajax از سرور برگشته و آماده است یا خیر . سپس در صورت آماده بودن جواب ، مقدار آن را در عنصر txtHint موجود بر روی صفحه قرار می دهد .
  • این بخش از کد ، شی xmlhttp ، را آماده کرده و به وسیله متد GET ، آن را به فایل مورد نظرمان یعنی gethint.php ارسال می کند .
    همچنین توجه داشته باشید ، که متغیر str به وسیله پارامتر q به صفحه مقصد PHP ارسال شده است ، که بعدا در آن دریافت و استفاده خواهد شد .

3 ) کد صفحه PHP مثال  :

همانطور که در کد ایجکس در بخش اول مشاهده کردید ، کد ایجکس ، فایل gethint.php را در دستور خود فراخوانی و اجرا می کند .
این فایل ، به جستجوی نام های معادل با کاراکتر ورودی توسط کاربر پرداخته و نتیجه ای معادل را بر می گرداند . در صورتی که هم ، معادلی برای مقدار ورودی پیدا نشود ، ، عبارت " no suggestion " به معنای بدون نتیجه صادر می شود .
کد فایل php در جدول زیر تشریح شده است :

کد فایل
PHP
< ?php
     // لیست نام های مثال
     $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";

    // از صفحه مبدا q دریافت پارامتر
    $q = $_GET["q"];

     // جستجو برای نام مورد نظر در صورت وارد کردن مقداری از سوی کاربر
     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];
                                         }
                               }
                    }
           }
     //      اگر نتیجه ای پیدا نشد ، عبارت بدون نتیجه تعیین شود
     //      یا اینکه جواب خروجی ارسال شود
     if ($hint == "")
          {
               $response="no suggestion";
          }
     else
          {
               $response=$hint;
           }
     // ارسال نتیجه خروجی به صفحه مبدا - دستور ایجکس
     echo $response;
?>
خروجی مشاهده خروجی مثال


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان بگذارید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :        
سوال امنیتی : پایتخت ایران ؟