illustrator Curse
  • 7Learn Android Course
  • 7Learn SEO Course
  • 7Learn WP Theme Course

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



  آیا می دانید میانگین رضایت دانشجویان سون لرن از دوره ها، بیش از 94% می باشد!

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

24071 ۳ مهر ۹۲

سلام به همه دوستان سون لرنی،چند وقت پیش توی انجمن به دوستان قول داده بودیم که آموزش کامل سیستم نظر سنجی برای سایت رو قرار بدیم و خوب بالاخره الوعده وفا،توی این اسکریپت از 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

:: مطالب جدید سون لرن را از طریق ایمیل دریافت کنید :

دیدگاه ها 45 دیدگاه برای این مطلب ارسال شده است. نظردهی برای این مطلب بسته شده است .

  • ‏‏

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

    • ‏‏
      لقمان آوند(۹ شهریور ۱۳۹۳)

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

  • ‏‏

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

    • ‏‏
      کیوان علی محمدی(۱۵ شهریور ۱۳۹۳)

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

  • ‏‏

    مختصر و مفید

  • ورود/عضویت سریع با اکانت فیسبوک/جیمیل شما

    :: شما می توانید با استفاده از اکانت یاهو یا جیمیل خود به صورت کاملا امن، سریع و بدون نیاز به ورود اطلاعات عضو و وارد سایت شوید. در این صورت هیچ نیازی به ورود نام کاربری و رمز عبور خود نخواهید داشت و هویت شما از طریق ایمیلتان مورد تائید قرار می گیرد .
    برای استفاده از این روش باید در اکانت گوگل(جیمیل) و یا یاهوی خود لاگین باشید .
    عضویت/ ورود سریع با :
    در حال اتصال ...

    ورود به سایت

    ورود سریع با :
    در حال اتصال ...

    جستجو در سون لرن

    عبارت :
    7LearnTelegram