AJAX و MySQL
از AJAX می توانیم برای ارتباط با پایگاه داده استفاده کنیم، در این بخش AJAX و MySQL را همراه با یک مثال آموزش خواهیم داد.
مثال برای AJAX و پایگاه داده
در این مثال قصد داریم اطلاعات یک جدول در پایگاه داده را با AJAX دریافت کنیم سپس نمایش بدهیم.
پایگاه داده MySQL
در این مثال با یک جدول در پایگاه داده MySQL همراه با ستون های id, FirstName, LastName, Age, Hometown, Job و همچنین تعدادی رکورد داخل آن داریم:
id | FirstName | LastName | Age | Hometown | Job |
---|---|---|---|---|---|
1 | Peter | Griffin | 41 | Quahog | Brewery |
2 | Lois | Griffin | 40 | Newport | Piano Teacher |
3 | Joseph | Swanson | 39 | Quahog | Police Officer |
4 | Glenn | Quagmire | 41 | Quahog | Pilot |
مرحله اول: صفحه HTML
برای درک بهتر این مطلب لطفاً آموزش AJAX در PHP را مطالعه کنید سپس به ادامه این آموزش مراجعه کنید.
کد های فایل index.html
توضیحات برای کد بالا:
ابتدا بررسی می کنیم که آیا یک گزینه از منوی تگ select انتخاب شده است یا خیر، اگر هیچ گزینه ای انتخاب نشده باشد (str == ""
)، محتوای txtHint را پاک می کنیم و از تابع خارج می شویم. اما اگر گزینه ای انتخاب شد این اتفاقات رخ خواهد داد:
- خط 10 یک شیء XMLHttpRequest ایجاد می شود.
- خط 11 تابعی تعریف می کنیم که وقتی پاسخ از سمت سرور آماده است اجرا شود. (یعنی درخواست رو فرستادیم، حالا پاسخ رو از سرور گرفتیم، کد های داخل تابع اجرا می شود)
- خط 16 یک درخواست از نوع GET به اسکریپت getuser.php همراه با کوئری
?q=
ارسال می کنیم. (شما می توانید آدرس URL کامل اسکریپت را وارد کنید مثلاً: https://localhost/projectname/getuser.php)
مرحله دوم: اسکریپتِ سمت سرور
صفحه ای که توسط جاوااسکریپت در سرور فراخوانی شده یک فایل PHP با نام getuser.php
است.
کد منبع در "getuser.php"
یک کوئری را در پایگاه داده MySQL اجرا می کند و نتیجه را در قالب یک جدول HTML برمی گرداند:
کد های فایل getuser.php
توضیحات برای کد بالا:
- در خط 23 بین پایگاه داده MySQL و PHP اتصال برقرار می کنیم.
- در خط 29 با استفاده از کوئری ای که تعریف کرده ایم کاربر را از پایگاه داده انتخاب می کنیم، نتیجه داخل متغیر
$result
ذخیره می شود. - در آخر یک جدول HTML را با داده هایی که از پایگاه داده گرفتیم تکمیل می کنیم و خروجی به
txtHint
برگردانده می شود.
آیا این مطلب برای شما مفید بود ؟