campaign-edianeh-98

آموزش کامل ساخت سیستم نظر سنجی با PHP و AJAX (قسمت اول)



visibility  
mode_comment   ۴۵

سلام به همه دوستان سون لرنی،چند وقت پیش توی انجمن به دوستان قول داده بودیم که آموزش کامل سیستم نظر سنجی برای سایت رو قرار بدیم و خوب بالاخره الوعده وفا،توی این اسکریپت از PHPو MYSQL و JQuery و AJAX بهره میبریم تا یه اسکریپت کاملا حرفه ای رو آماده کنیم،پس با ما همراه باشید.

خیلی از دوستان گلایه کرده بودن که چرا برای اموزش ها دمو قرار نمیدید،ما هم تصمیم گرفتیم انشاالله از این به بعد در ابتدای اموزش ها دمو رو قرار بدیم.

دموی اسکریپت نظر سنجی با PHP و AJAX (اختصاصی سون لرن)

خوب توی مرحله اول به سه تا جدول نیاز داریم؛چرا سه تا جدول ؟ خوب یه جدول سوالات نظر سنجی رو توی خودش نگهداری میکنه و جدول دومی پاسخ های سوالات رو توی خودش داره و جدول سومی هم برای ثبت IP کاربران هست که از رای دادن دوباره با یک IP جلوگیری کنیم که کمک میکنه نظرسنجی بهتر و قابل اعتماد تری داشته باشیم.

کد SQL برای جدول اول که ما اینجا اسمشو میذاریم question :

توی این جدول دو تا فیلد داریم یکی فیلد ID که لازمه هر جدوله و یکی هم فیلد title که عنوان نظر سنجی توش قرار میگیره.

کد SQL برای جدول جواب ها و ثبت رای کاربران که اسمشو گذاشتیم answers :

توی این جدول هم فیلد های ID و title برای برای عنوان جواب و فیلد number برای تعداد پاسخ های این جواب و فیلد q_id برا نگهداری شناسه سوال که درو اقع مشخص میکنه این جواب مربوط به این سوال هست،ما توی این جدول علاوه بر اینکه فیلد ID رو به عنوان کلید اصلی قرار دادیم،فیلد q_id رو هم به عنوان Index گذاشتیم تا توی کوئری هایی که با q_id سروکار داره سریعتر عمل کنه.

کد SQL برای جدول ثبت IP کاربران اسمشو گذاشتیم polls :

خوب تو این جدول همه فیلد ID و فیلد q_id برای نگهدرای شناسه سوال (دوستان عزیز توجه داشته باشند شناسه سوال در اینجا به عنوان شناسه نظر سنجی هم برای عمل میکنه)،فیلد ip برای نگهداری IP کاربری که رای داده و date هم برای نگهدرای تاریخ و ساعت رای کاربر(تیو phpMyAdmin اگه نوع فیلد رو TIMESTAMP قرار بدید خودش به صورت اتوماتیک تاریخ و ساعت لحظه پردازش رو وارد میکنه).

خوب اینم از ساختار و فیلد های جدول ها ما؛

قسمت HTML

توب فایل index.php قسمت فرم و ظاهر نظر سنجی رو طراحی میکنیم.

ما مثل همیشه از کلاسی که توی پروژه های قبلی ازش استفاده میکردیم هم همین جا استفاده میکنیم و تیو خط اول اونو فراخوانی کردیم (تنظیمات دیتابیس حتما توی فایل config.php انجام بشه).

قسمت HTML که توضیح خاصی نداره فقط اون کد های جاوااسکریپت رو که اضافه کردیم بعدا میگیم باهاشون چکار داریم.توی قسمت PHP که نوشتیم با دستور global $db متغییر db رو از فایل database که اون بالا اضافه اش کردیم رو فراخوانی کردیم (چون از قبل برای راحتی کار همون جا تعریف شده)،خوب باس ایتفاده از متد ها کلاسی که داریم به بانک وصل شدیم و اولین سوال نظرسنجی رو فراخونی کردیم و نشون دادیم و بعدشم با استفاده ار ID سوال اول تمامی گزینه هایی که مرتبط به این سوال هستن رو فراخوانی کردیم و داخل یه تگ div با کلاس options نشون دادیم،یه نکته اینکه قبل حلقه که جواب ها رو برای ما نشون میده من یه تگ input و از نوع hidden اضافه کردم که برای ما مقدار ID ُوال رو نگهداری میکنه (حالا این ID توی ارسال به صفحه پردازش و ثبت اطلاعات خیلی کاربرد داره)،آخرشم که با متد disconnect از دیتابیس قطع ارتباط کردیم.

خوب برای قسمت استایل هم کمی CSS نوشتیم:

خوب تا این  جای کار باید یه چیزی شبیه تصویر پایین داشته باشید.

p27-polls-result-1

توی قسمت بعد کد های JQuery و Ajax رو تکمیل میکنیم.موفق و پیروز باشید.

دانلود فایل های PHP

متخصص جاوا اسکریپت
با جاوا اسکریپت جادوگری کنید! آیا می دونید با زبان جاوااسکریپت می تونید، برای فرانت اند و بک اند وبسایت ها برنامه نویسی کنید؟ همینطور اپلیکیشن دسکتاپ و موبایل بسازید؟ اگر دوست داری اینکارها رو انجام بدی و React, ElectronJS, ReactNative, NodeJS,MongoDB و ... رو تو یه دوره یاد بگیری، متخصص جاوااسکریپت سون لرن رو حتما ببین : متخصص جاوا اسکریپت arrow_back
comment دیدگاه کاربران
P.Behravesh

خیلی عالیه آقا کیوان موفق باشی 🙂

کیوان علی محمدی

سلام،ممنون و لطف دارید.

رضا ساطع بیدگلی

عالی بود آقا کیوان

کیوان علی محمدی

ممنون رضا جان.

شاتل

عالیه!!!!!!!!!!!!!!!!!!!!!
ممنون 😛 😛 😛

yoosef

دستت درد نکنه کیوان جان
عالیه عالیه

کیوان علی محمدی

آقا یوسف ممنون.دست خود شما درد نکنه.

سید مجتبی موسوی

سلام ممنون مىشه بگىد اىن کد sqlکجا بزارمش و چى کارش کنم.

کیوان علی محمدی

اول کار توی phpmyadmin یه دیتابیس مثلا با اسم test یا مثلا polls بسازید و بعد هم دیتابیس رو انتخاب کنید و بعد از تب های موجود گزینه SQL رو انتخاب کنید این کد ها رو اونجا paste کنید و بعد با دکمه GO اونارو RUN کنید.

p

سلام اگه ممکنه اموزش ساخت سیستم نظر دهید رو هم شروع کنید.

کیوان علی محمدی

سلام چشم،به موقع اون رو هم آموزش میدیم.

مومني موگويي

سلام دوست عزیز خسته نباشید شما کتاب یا منبعی رو سراغ ندارین که نحوه طراحی یک سایت رو با php به صورت عملی آموزش داده باشه و ترجیحا فارسی باشه ممنون از لطفتون

کیوان علی محمدی

سلام متاسفانه برای فارسی در دسترس نیست اما برای انگلیسی اگه توی نت سرچ کنید build a CMS With PHP مطمئنا کتاب های خوبی گیر میارید که به نظرم از کتاب های فارسی خیلی بار علمیش بیشتره.

upvc بازار

با سلام و تشکر به خاطر مطلب خوبتون.لطفا آموزش طراحی فرم تماس با ما را هم قرار دهید.

کیوان علی محمدی

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

soran

بسیار عالی

yoosef

سلام آقا کیوان ببخشید
درست متوجه نشدم تنظیمات دیتابیس حتما توی config.php انجام بشه یعنی چی؟
ارور زیر برای چیه؟؟؟
warning:require_once (Config/database.php)[function.require_once]:failed to open sream:no such file or directory inC:\wamp\www\poll\index.php on line2
یکی دیگه هم هست
warning:require_once ()[function.require_once]:failed opening required ‘Config/database.php’ (include_path=’.;c:php\pear’) inC:\wamp\www\poll\index.php on line2

کیوان علی محمدی

سلام یوسف جان،شرمنده من اصلا یادم رفته بود فایل های لازم رو در انتهای مطلب قرار بدم؛اضاف شد میتونید از انتهای مطلب دانلود کنید،استفاده کنید خطاها برطرف میشه.توی فایل config.php توی پوشه config اطلاعات دیتابیس و جدول سیستم خودتون رو تنظیم کنید.

yoosef

ببخشید آقا کیوان یه سوال دیگه الان سوال نظرسنجی رو نشون میده دوتادکمه ثبت نظر ونمایش نتایج رو هم نشون میده اما جواب ها رو نشون نمیده مشکل از چیه؟

کیوان علی محمدی

شما توی جدول answers جواب ها رو وارد کردین؟ببینید کوئری تغییر پیدا نکرده باشه یا شرط اون تغییر پیدا نکرده باشه چون گاها با یه تغییر کوچیک دیگه عمل نمیکنه.

yoosef

درست شد مشکل ازدیتابیس بود.دستتون دردنکنه.

nikson

خیلی ممنون آقا کیوان
ظاهرا لینک قسمت دومش خرابه !!

کیوان علی محمدی

سلام یه مشکل فنی کوچیک بود،حل شد.ممنون بابت اطلاع رسانی.

lili

میشه آموزش درست کردن منوهای داینامیک هم بذارید؟ یعنی اطلاعات منو تماما از دیتابیس فراخونی بشه ممنون از آموزشهای خوبتون

کیوان علی محمدی

سلام حتما.در برنامه ما قرار میگیره.

فاضل

سلام
این آموزش رو دیدم و از نتیجه لذت بردم
بنده میخوام که این سیستم نظرسنجی رو داخل سایتم داشته باشم
فقط مشکل اینجاست که بنده اصلا کار با دیتابیسها رو بلد نیستم
اگر براتون مقدور هست، لطفا این مورد رو با جزئیات برای بنده توضیح بدید (یا به ایمیلم ارسال کنید)
با تشکر فراوان

کیوان علی محمدی

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

فاضل

میشه هزینه انجام این کار رو به ایمیل بنده ارسال بفرمایید؟

کیوان علی محمدی

سلام ایممیلتون رو بررسی کنید.

داوود

سلام من نظر سنجی رو نصب کردم سوال و جواب هارو هم در دیتابیس ثبت کردم اما وقتی فرم نظرسنجی رو ارسال میکنم رای من ثبت نمیشه فایل هارو چک کردم متوجه شدم یه فایل به اسم ajax.php در فایل ajaxreq.js هست که تو فایل دانلود موجود نیست و اطمینان دارم که تا این فایل باشه ارسال به صورت اجاکس اصلا امکانپذیر نیست ، اگر ممکنه این فایل رو هم برای دانلود بگذارید
ممنون

کیوان علی محمدی

ما کد های کامل و بی نقص آموزش رو در قسمت سوم اموزش قرار دادیم،شما دانلود کنید می بینید که فایل ajax.php هم اونجا قرار داره.موفق باشید

داوود

درسته من قسمت سوم اموزش رو ندیده بودم اما به صورت کامل دانلود کردم ممنون از مطلب و سایت خوبتون

Hosein

با سلام
اموزش خوب و عالی هست ولی یه سوال از بخواهیم تعداد گزینه هامون متغییر باشه باید چیکار کنیم
مثلا توی یه نظر سنجی 4 تا گزینه داریم توی یکی دیگه 5،6،… داریم اینو چیطور میشه پیاده سازی کرد
با تشکر از اموزش خوبتون

کیوان علی محمدی

سلام انشالله به زودی آموزش ساخت بخش مدیریت این اسکریپت رو قرار میدیم،در اونجا این نکته رو اعمال کردیم.موفق باشید.

Hosein

سلام
اقای علی محمدی اگه ممکنه یکمی توضیح دهید که چطوری پیاده سازی میشه؟
به نظرم من باید از قبل در بانک یه تعدادی فیلد داشت مثلا به تعداد 10 تا و هنگامی که تعداد گزینه های ما عوض شد از انها استفاده کنیم.
و این که چرا ما گزینه ها را در بانک ذخیره نمیکنم

کیوان علی محمدی

ببینید سوالات نظر سنجی در جدول question ذخیره میشن و گزینه های هر سوال هم در جدول answers ذخیره میشه،ما می تونیم به این صورت برای هر سوال هر چند تا گزینه ایجاد کنیم،گزینه های جدول answers توسط فیلد q_id به سوال مربوطه در جدول question متصل میشه.آموزشش رو بذاریم بیشتر متوجه میشید.

محمد

با عرض سلام
تنظیمات دیتابیس حتما توی فایل config.php انجام بشه ، یعنی چی؟ چه تنظیماتی باید انجام بشه ؟ لطفا از صفر توضیح بدین 😥

کیوان علی محمدی

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

محمد

دوباره سلام
میشه فایل config.php هم بزارین؟
نمیدونم چجوری درستش کنم

کیوان علی محمدی

در قسمت سوم فایل های کامل برای دانلود موجوده،فایل config هم داخل اون وجود داره.

کوثر

باسلام و خسته نباشید و تشکرازسایت خوبتون
میشه بفرمایید اسم دیتابیسو چی بزارم تا اتصال برقرار بشه؟ آخه من 2دیتابیس درست کردم یکی بنام dbکه 3جدولودرونش گذاشتم یکیم بنامdatabase که اتصال برقرار نشد!
ممنون میشم اگه جواب بدیدآخه فوری لازم دارم

لقمان آوند

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

کوثر

باسلام وممنون ازپاسختون؛ من اسم دیتابیسوباید در صفحهdatabase.php بزارم؟در قطعه کدزیر؟
$db_select=mysql_select_db(DB_NAME,$this->connection);
آخه درهمین صفحه اسامی3دیتابیس دیگه اومده مگه از چنددیتابیس میشه استفاده کرد؟لطف میکنین بیشتر راهنمایی بفرمایین؟

کیوان علی محمدی

سلام شما فقط کافیه اطلاعات دیتابیس رو در فایل config ست کنید.

محمد

مختصر و مفید

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.