پنجشنبه ۰۴ اردیبهشت ۱۴۰۴

Thursday, April 24, 2025 GMT +3:30

ارسال اطلاعات فرم با ای جکس (Ajax) و نمایش پیام در حال پردازش

ajax

در آموزش های مقدماتی ای جکس (Ajax) گفتیم که چگونه می توان اطلاعات یک فرم را با متد GET یا POST برای یک فایل PHP ارسال و نتایج حاصل از پردازش آنها را بدون رفرش شدن صفحه به کاربر نشان داد که در واقع این فرآیند فلسفه پیدایش تکنیک Ajax است، در این مطلب می خواهیم کمی از تئوری فاصله گرفته و کدی کاربردی را قرار دهیم که به کمک آن بدون استفاده از کتابخانه هایی مانند جی کئوری (jQuery) و دردسرهایش، تنها بر مبنای ای جکس صرف (Pure Ajax) اطلاعات یک فرم HTML را به صورت پیشرفته ارسال و علاوه بر آن حالت در حال پردازش (loading یا processing) را نیز با تصویر و متن نمایش دهیم، به این ترتیب می توانیم در طراحی رابط کاربری (User Interface) صفحات وبی که مبتنی بر ای جکس هستند گام مثبتی برداشته و آخرین وضعیت پردازش درخواست را به اطلاع کاربر برسانیم.

کد HTML، دستورات CSS، JavaScript و Ajax


مانند آنچه در آموزش های مقدماتی دیدیم صفحات مبتنی بر تکنیک Ajax از سه قسمت کدهای سمت کاربر (کدهای HTML، CSS، JavaScript و...)، سمت سرور (برنامه نویسی به زبان PHP، ASP.NET و...) و رابط بین سمت کاربر و سمت سرور یعنی توابع Ajax تشکیل شده اند، از این رو برای ارسال و دریافت اطلاعات بین سمت کاربر و سمت سرور ابتدا باید بخش مربوط به کدنویسی HTML، CSS، JavaScript و Ajax را مشابه با نمونه کد زیر انجام دهیم:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | ارسال اطلاعات فرم با ای جکس</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
label{
    width:100px;
    display:inline-block;
}
</style>
<script type="text/javascript">
var div_id = 'show-result';
var loading_message = '<img src="loading.gif" alt="loading" height="16" width="16"> لطفا کمی صبر کنید...';

function ajaxRequest(){
    var xmlHttp;
    try{
        xmlHttp = new XMLHttpRequest();
        return xmlHttp;
    } catch (e){
        try{
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            return xmlHttp;
        } catch (e){
            try{
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                return xmlHttp;
            } catch (e){
                alert('مرورگر شما از ای جکس پشتیبانی نمی کند!');
                return false;
            }
        }
    }
}

function formGet(form, url){
    var post_str = getFormValues(form);
    //alert(post_str);
    postData(url, post_str);
}

function postData(url, parameters){
    var xmlHttp = ajaxRequest();
    
    xmlHttp.onreadystatechangefunction(){
        if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4){
            document.getElementById(div_id).innerHTML = loading_message;
        }
        if(xmlHttp.readyState == 4){
            document.getElementById(div_id).innerHTML = xmlHttp.responseText;
        }
    }
    
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", parameters.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(parameters);
}

function getFormValues(form){
    var str = '';
    for(var i = 0;i < form.elements.length;i++){
        switch(form.elements[i].type){
            case 'text':
            str += form.elements[i].name +
            '=' + encodeURI(form.elements[i].value) + '&';
            break;
            case 'textarea':
            str += form.elements[i].name +
            '=' + encodeURI(form.elements[i].value) + '&';
            break;
            case 'select-one':
            str += form.elements[i].name +
            '=' + form.elements[i].options[form.elements[i].selectedIndex].value + '&';
            break;
            case 'checkbox':
            if(form.elements[i].checked == true){
                str += form.elements[i].name +
                '=' + form.elements[i].value + '&';
            } else{
                str += form.elements[i].name +
                '=' + '0' + '&';
            }
            break;
        }
    }
    str = str.substr(0, (str.length - 1));
    return str;
}
</script>
</head>
<body>
<noscript>
جاوا اسکریپت در مرورگر شما غیر فعال است!
<br>
</noscript>

<form name="form-name" action="#">
<label for="name">نام: </label>
<input id="name" name="name" type="text" size="50" placeholder="نام خود را وارد کنید">
<br>
<br>
<label for="email">پست الکترونیک: </label>
<input id="email" name="email" type="text" size="50" placeholder="پست الکترونیک خود را وارد کنید">
<br>
<br>
<label for="number">انتخاب شماره: </label>
<select id="number" name="number">
<option value="1">1</option>
<option value="2">2</option>
</select>
<br>
<br>
<label for="check">تایید: </label>
<input id="check" name="check" type="checkbox" value="1">
<br>
<br>
<input name="send" type="button" value="ارسال" onclick="formGet(this.form, 'ajax-post-form.php');">
</form>
<div id="show-result"></div>
<hr>
پس از کلیک بر روی دکمه ارسال، تابع جاوا اسکریپتی formGet اجرا شده و فرآیند درخواست ای جکس شروع می شود، در نهایت نتیجه در بلاک div با آی دی فرضی show-result نمایش داده خواهد شد، یکی از بخش های مهم این کد ارسال آبجکت فرم با تابع formGet و استفاده از آن در تابع getFormValues است، از این آبجکت برای دسترسی به زیرمجموعه های تگ form مورد نظر استفاده خواهیم کرد.
</body>
</html>
این کدها را در فایلی با نام دلخواه و پسوند html یا php ذخیره کنید.
توضیح:
- اولین تابعی که پس از کلیک بر روی دکمه ارسال فراخوانی می شود formGet است که دو آرگیومنت دارد، آرگیومنت اول آبجکت فرم و آرگیومنت دوم نام فایلی است که اطلاعات به آن ارسال خواهد شد.
- اطلاعات به فایلی در سرور با نام ajax-post-form.php ارسال و نتیجه از آن دریافت می شود، در طی این فرایند متغیر loading_message در حالتی که متد xmlHttp.readyState بین 0 تا 4 است در خروجی چاپ و پیامی مبنی بر در حال پردازش بودن درخواست ای جکس به همراه تصویر متحرک نشان داده می شود.
- تابع ajaxRequest برای ایجاد ساز و کار ارسال درخواست و دریافت پاسخ به شیوه ای جکس است که با مرورگرهای مختلف سازگار شده و نهایتا اگر سیستم کاربر نتواند درخواست را ارسال کند پیامی مبنی بر پشتیبانی نکردن مرورگر از ای جکس نشان داده خواهد شد.
- متدی که در کد استفاده شده متد POST است، در خصوص تفاوت متد GET و POST در آموزش های مقدماتی صحبت کردیم، در اینجا نکته مهم این است که باید در سمت سرور نیز با متد POST پارامترها را دریافت کنیم.
- تابع getFormValues اطلاعات فیلدهای فرم را بر اساس نوع آنها دریافت و به عنوان نتیجه در نهایت به صورت یک رشته متنی برمی گرداند، این اطلاعات در تابع formGet به عنوان پارامتر در تابعی دیگر با نام postData و متغیر post_str استفاده می شوند که در نهایت از آن در قسمت xmlHttp.send جهت ارسال پارامترهای اطلاعاتی در قالب متد POST استفاده می کنیم، نمونه:
name=your-name&email=your@email.com&number=1&check=1
- برای سازگاری با یونیکد utf-8 (پشتیبانی از زبان فارسی) و جلوگیری از مشکلات احتمالی در ارسال اطلاعات فرم از طریق ای جکس از تابع encodeURI استفاده کرده ایم، این تابع مقادیر فیلدها را جهت استفاده در درخواست ای جکس به صورت کاراکترهای استاندارد utf-8 تبدیل می کند.

دستورات PHP جهت دریافت و پردازش درخواست ای جکس


با استفاده از کدهای PHP زیر مقادیر ارسال شده از درخواست مبتنی بر ای جکس را دریافت، پردازش و خروجی را به عنوان پاسخ ارسال می کنیم، همان طور که مشخص است در این قسمت نیز از متد POST استفاده کرده ایم.
<?php
$name = @$_POST['name'];
$email = @$_POST['email'];
$number = @$_POST['number'];
$check = @$_POST['check'];

echo "نام شما: $name <br>";
echo "پست الکترونیک شما: $email <br>";
echo "شماره انتخاب شده: $number <br>";
echo "وضعیت تایید: $check <br>";
?>
پیش نمایش
این کدها را نیز در فایلی با نام ajax-post-form.php ذخیره و در کنار فایل قبلی (کدهای سمت کاربر) قرار دهید، با درک این ساختار ساده به راحتی می توانیم در برنامه های کاربردی و پیچیده تر موارد دلخواه خود را ایجاد و کد را سفارشی سازی کنیم.
دسته بندی: آموزش کاربردی » Ajax
related مطالب بیشتر:
اعتبارسنجی همزمان فرم با ای جکس (Ajax) و PHP
آموزش نحوه آپلود فایل با PHP و ای جکس (Ajax)
ساخت قابلیت امتیازدهی با PHP و Ajax
نمایش نتایج پایگاه داده MySQL با PHP و ای جکس (Ajax)
نمایش زنده آمار و اطلاعات با ای جکس (Ajax)
دیدگاه
more ۴۰ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
میکاییل
۱۰:۴۹ ۱۳۹۹/۰۸/۲۵
درسته مشکلی نیست تو ارسال اطلاعات. تنها مشکلم اینه که هدر عمل نمیکنه و ریدایرکت انجام نمیشه و نمیره سمت صفحه پرداخت. حالا نمیدونم به خاطر اینه که بصورت ایجکسی ارسال میکنم یا نه. تستی که کردم تو کد های php اگر چیزی رو اکو میکنم نشون میده ولی هدر نمیشه. حالا کاملترشو نزاشتم خیلی زیاده ولی گفتم اگر استاتوس 100 بود که هدر بشه نبود خطا بده. خطاها درسته ولی هدر نمیشه.
کد جیکوری هم به همون صورته. در کل مشکل من فقط با ریدایرکت نشدنشه
https://codepen.io/mika6020/pen/oNLmgwK
if($status==100)
{
$sql="INSERT INTO `tbl_order` (userid) VALUES (?)";
$stmt=self::$db->prepare($sql);
$stmt->bindparam(1, $userid,PDO::PARAM_STR);
$query=$stmt->execute();
header('location: https://www.zarinpal.com/pg/StartPay/'. $Authority);
exit();
}else{
echo ''.$error.'';
}
در پاسخ درخواست Ajax صرفا مقادیر متنی ساده یا JSON قابل تنظیم و ارسال است پس دستور header به این شیوه قابل اجرا نیست، به نظر در تئوری راه حل این است که ابتدا با ای جکس به سرور درخواست ارسال و فعل و انفعالات مد نظر را با PHP انجام دهید، اگر همه چیز درست بود در پاسخ به فرض status:ok|count:3|price:2000 را به عنوان نتیجه چاپ و در جی کئوری پاسخ را بررسی و با کمک کاراکترهای | و : به آرایه تجزیه نمائید، اگر مشکلی نبود از جی کئوری یک درخواست با متد POST به آدرس درگاه ایجاد کنید، قاعدتا ممکن است نیاز به دریافت پارامترهای بیشتری از سمت PHP باشد که در اینصورت استفاده از JSON می تواند گزینه مناسبی باشد (البته با متن ساده هم می توانید پارامترها را از PHP به جی کئوری رد و بدل کنید)، در این حالت باید پاسخ سرور را تجزیه و به آرایه تبدیل و از پارامترهای آرایه برای تنظیم درخواست POST به درگاه استفاده کنید.
میکاییل
۰۰:۵۹ ۱۳۹۹/۰۸/۲۵
سلام
من تو قسمتی از صفحه پرداخت انلاین دارم همه چی درسته و اطلاعات بصورت ایجکسی ارسال میشه و سمت سرور نوشتم که هدر بشه به زرین پال. میدونم اینطوری نمیشه ولی کد من اینه چیکار کنم. یه مقدار هنگ کردم اینجا
اسکریپتی که نوشتم اینجاست
https://codepen.io/mika6020/pen/oNLmgwK
اونور هم شرطی هست اگر درست بود هدر بشه نبود خطا بده
 header('location: https://www.zarinpal.com/pg/StartPay/'. $Authority);
آدرس کدی که درج کرده اید صرفا شامل بخش جی کئوری است و قابل تست و بررسی نیست.
amir
۱۳:۲۲ ۱۳۹۹/۰۱/۱۰
سلام و ارادت
سال نو مبارک ...
من یه صفحه دارم که شامل یه سری پست هست و میخوام امکان لایک مطالب پست ها رو قرار بدم در صفحه زیر اگه مشاهده کنید با کلیک روی هر کدوم از دکمه ها (که این دکمه ها زیر هر پست قرار میگیره) عدد اضافه میشه اما با submit صفحه هم رفرش میشه
https://moralschool.ir/ms/index2.php
من میخوام بدون رفرش اینکار انجام بشه از ajax هم استفاده کردم و تست کردم ولی با این کار فقط آخرین پستم رو میشه لایک کرد و با کلیک روی دکمه لایک برای بقیه پست ها هیچ اتفاقی نمیفته
کدها رو نمیدونم کجا میتونم بفرستم اگه امکان داشته باشه راهنمایی بفرمایید
ممنون میشم
برای ساخت این قابلیت با Ajax باید پارامترهای شناسایی هر پست (معمولا ID دیتابیس مربوط به آن پست) در هنگام فراخوانی تابع (به فرض در رویداد onclick) به صورت متد POST یا GET به سرور ارسال شود، بر اساس این پارامتر ارسال شده در کدهای PHP و با برنامه نویسی، با در نظر گرفتن دستور
WHERE id = $input_id
در پرس و جوی MySQL دیتابیس را به روزرسانی می کنیم.
برای بررسی بیشتر کدها را می توانید به صورت فشرده و البته قابل تست (کدهای PHP + HTML) به آدرس ایمیل ما (موجود در بخش تماس) ارسال کنید.
ساحل
۱۳:۰۵ ۱۳۹۸/۰۱/۱۷
ممنون
ممنون
ممنون
ساحل
۱۱:۲۹ ۱۳۹۸/۰۱/۱۷
سلام
روز بخیر
ببخشید میخواستم نظر شما در مورد امنیت ajax بدونم. اگر برای یک سایت مثلا بخش ویرایش کاربر و ثبت کاربر و یک سری ایتم های دیگه به صورت ajax بنویسم و در دیتابیس ذخیره کنه از نظر شما امنیت سایت پایین نمیاد ؟
میخواستم بدونم کار استانداری برای کدنویسی هست؟
و اگر تابع و متدهایی داره برای امنیت بیشتر میشه لطفا بگید
با تشکر
Ajax تنها یک شیوه دیگر ارسال و دریافت مقادیر بین صفحه کاربر (Client) و سرور است و اصول آن با حالت معمول (ارسال فرم و رفرش صفحه) تفاوتی نمی کند، لذا از نظر امنیت نکته ی بخصوصی ندارد، کدها باید در سمت سرور به لحاظ امنیتی دقیق و حساب شده باشند، به فرض برای دریافت کلمه عبور صرفا از متد POST استفاده شود (نه GET)، پارامترها قبل از استفاده در پرس و جوهای دیتابیس ایمن سازی شوند، در صورت امکان سایت به صورت HTTPS و مجهز به گواهی SSL باشد.
۲۳:۰۳ ۱۳۹۷/۰۶/۲۷
بسیار عالی بود...
Mobin
۱۴:۴۹ ۱۳۹۷/۰۲/۱۰
سلام
ممنون از مطلب خوبتون
یه مشکلی که من با ajax دارم اینه که بعد از این که اطلاعات صفحه رو چاپ کردم دیکه jquery المان های جدید رو نمیشناسه و حتما باید صفحه رفرش میشه به عنوان مثال من از اجاکس استفاده میکنم که یک کلید بسازه بعد از اون میخوام اون کلید دوباره یک اجاکس بفرسته
خب اینجا باید صفحه رفرش بشه که جاوا اسکریپت دوباره صفحه رو با دام هاش اسکن کنه اما من نمیخوام صفحه رفرش بشه یکی دیگه از روش ها اینه که فایل جاوا اسکریپت که برنامه توش هست رو reload کنم که خوندم این کار امن نیست مخواستم بپرسم شما راه حلی واسه این مشکل دارید؟
هرچند درک دقیق مشکل و ارائه راه حل نیازمند بررسی بیشتر و تست کدها است اما با توجه به توضیحات به نظر باید دکمه ها و مواردی از این قبیل را به کمک جاوا اسکریپت ایجاد کنید، به فرض در حالت عادی دکمه مخفی باشد و پس از دریافت پاسخ از سرور با Ajax (پاسخ می تواند با فرمت دلخواه به فرض JSON باشد) آن را تجزیه کرده و در صورت نیاز دکمه را با جاوا اسکریپت از حالت مخفی خارج کنید (به فرض با متد document.getElementById مقدار خاصیت display آن را از none به block تغییر دهید).
حسام آقاجانی
۱۸:۲۰ ۱۳۹۶/۱۲/۲۸
سلام خسته نباشید من کد زیر رو برای ارسال انلاین مقدار range نوشتم ولی دوتا مشکل دارم نمیدونم مقدار رو چطور دریافت کنم و ارسال نمیشه ممنون میشم کمکم کنید .
https://energy-pak.com/test.txt
ظاهرا عنصری با آی دی here در کدها وجود ندارد؟! در هر صورت در صورت تمایل می توانید کد را به صورت آنلاین و قابل تست قرار دهید تا بررسی گردد.
مبدأ
۱۴:۵۲ ۱۳۹۵/۱۲/۰۸
سلام از کد شما استفاده کردم اما دوتا مشکل دارم. اول اینکه از کلیه اطلاعات صفحه یک کپی میگیره و دوباره نمایش میده و دومین مشکل اینه که وقتی دیزاینم رو تغییر می دهم این کدها دیگر به درستی عمل نمی کند. یعنی صفحه مجددا رفرش می شود. لطفا راهنمایی بفرمایید.
در مورد بخش اول، بعد از ارسال درخواست Ajax هرچیزی که به عنوان پاسخ دریافت شود، نمایش داده می شود، لذا باید پاسخ سرور به درخواست Ajax صرفا شامل متن یا تگی باشد که می خواهید نشان داده شود نه کل کدهای یک صفحه (انجام این کار نیازمند آشنایی شما با برنامه نویسی PHP است!)، اما در مورد بخش دوم سوال، دقیقا متوجه مشکل نشدیم، در صورتی که در طراحی خود دستورات مورد نیاز Ajax وجود داشته باشد با فراخوانی تابع نباید مشکلی پیش بیاید، لصفا به سورس کدهای آموزش دقت کنید و سعی کنید این الگو را در کدهای خود حفظ نمائید.
میلاد
۱۸:۰۰ ۱۳۹۵/۰۷/۰۳
سلام ممنون بابت سایت خوبتون خواستم بپرسم از لحاظ امنیتی مشکلی پیش نمیاد اگه با آجاکس فرم پسورد رو ارسال کنیم؟ یعنی منظورم اینه که ممکنه هکرها بتونن پسورد وارد شده توسط کاربر رو دریافت کنند؟
Ajax به جز عدم نیاز به رفرش صفحه، تفاوت دیگری در نوع پردازش و ارسال اطلاعات ندارد، لذا رعایت همان نکات معمول برای Ajax نیز کافی خواهد بود!
amin
۱۴:۳۴ ۱۳۹۴/۰۴/۰۷
ممنون بابت آموزش عالی که گذاشتید
وقتی میخوام در فایل php یا همان ajax-post-form.php از کدهای زیر استفاده کنم فقط همان کد مورد نظر درست عمل نمیکنه و بقیه اطلاعات رو درست دریافت میکنه
<script type="text/javascript" language="javascript">window.open("user","_self");</script>
و یا کد header درست عمل میکنه اما به صفحه منتقل نمیشه و مانند include عمل میکنه
با تشکر فراوان بابت وقتی که میگذارید و به سوالات زیاد بنده پاسخ داده اید
هرچند دقیقا متوجه منظورتان نشدیم، اما اگر می خواهید پس از ارسال درخواست به سمت سرور (فایل PHP) یک سری دستورات اجرا کنید، باید چند نکته را مد نظر داشته باشید:
- امکان اجرای دستورات جاوا اسکریپت در فایل PHP در هنگام پردازش کدها در سرور وجود ندارد، کدهای جاوا اسکریپت زمانی قابل اجرا هستند که در مرورگر باشند.
- دستورات header در درخواست Ajax کاربردی ندارد، اگر به فرض باید صفحه پس از ارسال درخواست رفرش شود، می توانید پاسخ سرور را دریافت و سپس در مرورگر و با استفاده از دستورات جاوا اسکریپت کاربر را به مقصد مورد نظر خود منتقل کنید (باید نحوه مدیریت درخواست Ajax با JavaScript را بلد باشید).
علی
۱۳:۵۴ ۱۳۹۴/۰۲/۱۹
با سلام و تشکر از سایت خوبتون.
مشکل من با اینترنت اکپلورر ویندوز سون هست.در حالت متد گت مشکلی نداره ولی در حالت متد پست هیچ داده ای به سمت صفحه ی هدف نمی فرستد.با مرورگر های اپرا و فایرفاکس تست شد مشکلی نبود. در نرم افزار feddler
اطلاعات به این شکل است.
Content-Length: 0
سرچ کردن توی سایت استک اور فلو هم تعدادی همین مشکل را داشتند ولی راه حل مناسبی هنوز ندیدم
هرچند رفع مشکل نیاز به تست و دیدن سورس کدهای شما دارد، اما ظاهرا این مشکل زمانی است که بخواهید از یک فرم در یک دامنه یا لوکال هاست اطلاعات را به یک دامنه (سرور) دیگر ارسال کنید و مرورگر در این حالت خطای امنیتی می دهد.
مرتضی
۲۱:۴۱ ۱۳۹۳/۰۸/۲۰
با سلام
آموزش خیلی خوبی بود. واقعاً به دردم خورد. الآن دارم روش کار میکنم. فقط یه سوال داشتم
من از دو تا تگ select استفاده کردم. با انتخاب یک مورد از سلکت اول ، آپشن هایی به سلکت دوم وارد میشه.
(آی دی showresult رو گذاشتم رو select دوم.)
الآن تصویر loading نمایش داده نمیشه. چجوری میتونم این تصویر رو به صورت جدا ، کنار select دوم قرار بدم ؟!

با تشکر فراوان
این آموزش صرفا یک نمونه است تا شما با اصول کار آشنا شوید، اینکه چگونه بر اساس نیاز خود از آن استفاده کنید بستگی به درک مبنای کار توسط شما دارد، با این تفاسیر باید ببینید علت عدم نمایش تصویر لودینگ چیست و کجای کار را اشتباه انجام داده اید، راه حل دیگر این است که نمونه کدهای خود را در یک صفحه قرار داده و آدرس آنلاین آن را ارسال کنید تا بررسی گردد (حل اینگونه مشکلات بدون دیدن و تست سورس کدها عملا غیر ممکن است!).
۱۴:۲۲ ۱۳۹۳/۰۶/۰۳
با سلام
می خواستم بدونم چه تغییراتی رو باید در کد بالا انجام بدم تا بتونم فرم زیر رو با آژاکس ارسال کنم
<form  enctype="multipart/form-data" action="engine.php" method="post" >
<label>فایل پیوست را انتخاب نمایید:</label>
<input type="file" name="file" />
<input type="submit" value="آپلود" />
</form>
برای مثال اولین تغییری که باید در کد بالا بدیم این هست که بای جای application/x-www-form-urlencoded از multipart/form-data استفاده کنیم.
در حال حاضر Ajax قابلیت پشتیبانی از آپلود فایل را ندارد، تنها راه حل استفاده از فریم ورک هایی مانند جی کئوری است.
farshad
۰۰:۱۰ ۱۳۹۳/۰۵/۲۶
سلام چطوری میشه این کد رو طوری نوشت که بیاد دیتابیس رو چک کنه در صورت انتخاب یک فیلد از دیتابیسی توسط کاربر یک فیلد را دیگر را بدون رفرش نشون بده؟
سوال کلی است!
قاعدتا باید برنامه نویسی PHP و کار با MySQL بلد باشید، درخواست Ajax صرفا یک یا چند پارامتر در چارچوب متد POST یا GET به سرور ارسال و نتیجه را برمی گرداند، اینکه چگونه در سرور از این مواد خام استفاده کنیم به خودمان و هدف برنامه بستگی دارد، به عبارتی عمده کار شما با PHP و MySQL است.
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
8 × 2
20 × 20
=