1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آموزش ajax

شروع موضوع توسط minaaa ‏8/1/11 در انجمن Ajax

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش ajax

    برگشتم تا کاری رو که نصفه کاره گذاشته بودم رو تموم کنم .

    قسمت هایی از جاوااسکریپت کارمون مونده که باید تمومشه .

    ابتدا تابع همیشگیمون رو که تو هر برنامه از واون استفاده می کردیم رو تعریف می کنیم .
    کد PHP:

    <code style="overflow-x: auto; overflow-y: auto; height: auto; max-height: 200px; display: block; font-family: Monaco, Consolas, Courier, monospace; font-size: 11px; direction: ltr; text-align: left; ">//اجاکس , ایجکس , اژاکس ,AJAX
    function GetXmlHttpObject()
    {
    var
    xmlHttp=null;
    try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
    catch (
    e)
    {
    //Internet Explorer
    try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (
    e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    return
    xmlHttp;
    }
    </code>



    وبعد هم تابع $ و تابعی که وظیفه مرتب کردن و ارسال داده ها به سرور رو بر عهده داره در این قسمت اسم تابع رو sendToServer گذاشتیم

    کد PHP:

    <code style="overflow-x: auto; overflow-y: auto; height: auto; max-height: 200px; display: block; font-family: Monaco, Consolas, Courier, monospace; font-size: 11px; direction: ltr; text-align: left; ">function $(id){return document.getElementById(id)}



    function
    sendToServer()
    {
    xmlHttp=GetXmlHttpObject();
    if (
    xmlHttp==null)
    {
    alert ("Browser does not support HTTP Request");
    return;
    }

    url='add.php?name='+encodeURIComponent($('name').value)+'&family='+encodeURIComponent($('family').value)+'&code='+$('code').value;


    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.send(null);

    }
    </code>



    فکر نکنم تابع sendToServer احتیاج به توضیح داشته باشه مثل برنامه ها قبلی یه نمونه از شی می سازه وجود شی رو چک می کنه و یه متغییر که مجموع داده های ارسالیمون در اون اون قرار می گیرن و در انتها این داده ها رو برای سرور ارسال می کنیم .

    تا اینجا تمام کارها مثل دفعات قبل بود ولی در نتیجه برگشتی یک تفاوت هایی وجود داره
    کد PHP:

    <code style="overflow-x: auto; overflow-y: auto; height: auto; max-height: 200px; display: block; font-family: Monaco, Consolas, Courier, monospace; font-size: 11px; direction: ltr; text-align: left; ">function stateChanged()
    {
    if (
    xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
    if (
    xmlHttp.responseText=='1')
    {
    add($('name').value,$('family').value,$('code').value);
    }
    else{
    alert("Error in connect to server");

    }

    }
    }
    </code>



    توسط تابع stateChanged نتیجه برگشتی از سرور رو برسی می کنیم .
    در سمت سرور در صورت ثبت درست اطلاعات در بانک مقدار یک رو بر گشت خواهیم داد و در اینجا در صورتی که مقدار برگشتی یک بود تابعی رو که برای اضافه کردن یک سطر به جدول رو ساختیم با همون مقادیر ارسالیمون فراخونی می کنیم و در غیر اینصورت یک پیام نمایش می دیم که نشان دهنده یک مشکل در اجرای مراحل کاریست که میشه چک های بیشتر دقیق ترش کرد .
     
  2. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش ajax

    و حالا در سمت سرور

    یه ارتباط با بانک اطلاعاتی , ایجاد یک کوئری و اجرای ان برای ثبا اطلاعات رسیده و بازگرداندن مقداری که پس از اجرای کوئری بدست می اید .

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

    کد PHP:

    <code style="overflow-x: auto; overflow-y: auto; height: auto; max-height: 200px; display: block; font-family: Monaco, Consolas, Courier, monospace; font-size: 11px; direction: ltr; text-align: left; ">//اجاکس , ایجکس , اژاکس ,AJAX
    $con=mysql_connect('localhost','root','');
    $db=mysql_select_db('ajax',$con);
    mysql_query("set names 'utf8'");
    $q="INSERT INTO `ajax`.`students` (
    `id` ,
    `name` ,
    `family` ,
    `code`
    )
    VALUES (NULL , '"
    .$_GET['name']."', '".$_GET['family']."', '".$_GET['code']."')";

    $query=mysql_query($q);
    echo
    $query;
    </code>