در این آموزش قصد داریم نحوه ساخت فرم چند مرحله ای را توسط php یاد بگیریم . نکته مهم این آموزش استفاده از session ها برا ردگیری و ساخت فرم چند مرحله ای با php است . در هر مرحله ما داده های وارد شده در فرم توسط کاربر را در session ها ذخیره می کنیم . همچنین یک دستور sql را مستقیما از طریق داده های ذخیره شده در session می سازیم .
ما این کار را در صفحات مختلف انجام می دیم ، با استفاده از پاس دادن اطلاعات به صفحات دیگر ، تا زمانی که داده ها در سئشن ذخیره هستند ، می توانیم به صورت داینامیک کوئری sql را از داده های سئشن ایجاد کنیم .
ساخت فرم چند مرحله ای با php – کد ها
در اولین مرحله ، ما zip_code را در سئشن ذخیره می کنیم (مقدار هر فیلد دیگری را متناسب با فرم خود می توانید ذخیره کنید) .در مرحله بعد ما اطلاعات ذخیره شده را از سئشن خوانده و نمایش می دهیم . در ادامه ما اطلاعات بیشتری مثل sate,school_name را در session ذخیره می کنیم.
در مرحله سوم ، ما همه اطلاعات ذخیره شده در سئشن را دریافت و از طریق متد POST ارسال و سپس کوئری sql مربوطه را می سازیم .
از بخش php ، اگر مقدار submit ست شده باشد ما کد مربوط به هر مرحله را اجرا می کنیم .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<?php session_start(); if(isset($_POST['sign_up'])){ if($_POST['sign_up'] == "Search"){ $_SESSION['zip_code'] = $_POST['zip_code']; } if($_POST['sign_up'] == "Submit"){ $_SESSION['state'] = $_POST['state']; $_SESSION['school_name'] = $_POST['school_name']; } if($_POST['sign_up'] == "Select"){ echo $sql = "INSERT INTO `test` (zip_code, state, school_name, student_name) VALUES ('{$_SESSION['zip_code']}', '{$_SESSION['state']}', '{$_SESSION['school_name']}', '{$_POST['student_name']}')"; } } ?> </html> <head> <title>Multi Step form Processing</title> </head> <body> <div id="innr_bx"><?php if (empty($_POST)){?> <!-- First Step --> <form action="" method="post"> <label>Zip Code :</label><input type="text" name="zip_code" /> <input type="submit" name="sign_up" value="Search" /> </form> <!-- Second Step --> <?php }elseif ($_POST['sign_up'] == 'Search'){ ?> <label>Zip Code :</label><input type="text" name="zip_code" value="<?php echo $_SESSION['zip_code'] ?>" />"/> <label>District :</label><input type="text" name="state" /> <label>School :</label><input type="text" name="school_name" /></pre> <input type="submit" name="sign_up" value="Submit" /> </form> <!-- Third Step --> <?php }elseif($_POST['sign_up'] == 'Submit'){ ?> <form action="" method="post"></form> <label>Zip Code :</label><input type="text" name="zip_code" value="<?php echo $_SESSION['zip_code'] ?>" />"/> <label>District :</label><input type="text" name="state" value="<?php echo $_SESSION['state'] ?>"/> <label>School :</label><input type="text" name="school_name" value="<?php echo $_SESSION['school_name'] ?>"/> <label>Student Name :</label> <input type="text" name="student_name" value="" /> <input type="submit" name="sign_up" value="Select" /> <?php }?></div> </body> </html> |
برای زیبا و حرفه ای شدن کار می توانید از ترکیپ جی کوئری و ajax هم استفاده کنید . !
اگر هرگونه مشکلی در پیاده سازی کدهای ساخت فرم چند مرحله ای داشتید از طریق نظرات با ما در ارتباط باشید .
موفق و پیروز باشید.
باسلام وقت بخیر
اگر کاربری دو مرحله از فرم رو پر کنه و منصرف بشه .
کاربر دومی وقتی بخواد فرم رو پرکنه چون از قبل سشن ها پرشداند ایراد داره . راحلی برای این کار موجوده
سلام ممنون.
اصلا یک هزار کاربر هم همزمان فرم رو پر کنند مشکلی پیش نمیاد و سشن ها برای هر کاربر یونیک هستند و ارتباطی با کاربر دیگه ندارند.
موفق باشید.
باسلام خدمت استاد خسته نباشید
استاد عزیز یه سوال مهم دارم ؟ شما فرم های html رو داخل شرط if … elseif … else نوشتید که به ترتیب اجرا میکند و نمایش میدهد حالا اگه بخوام دکمه برگشت به فرم قبلی را درست کنیم میتوان داخل شرط if … elseif … else اجرا کرد لطفاََ یه مثال بزنید راهنماییم کنید خیلی وقته درگیرشم قربان شما.
سلام. ممنون.
هر مرحله که وارد می شوید یک داده از طریق متد پست ارسال میشه مثلا برای مرحله دریافت zip code می بینید که مقدار $_POST[‘sign_up’] == ‘Search’ است پس دکمه برگشت برای هر مرحله را بر اساس مرحله قبل بصورت فرم بچینید.
مثلا در مرحله$_POST[‘sign_up’] == ‘Submit’ هستید و میخواهید دکمه برگشت رو بسازید پس مرحله قبل $_POST[‘sign_up’] == ‘Search’ هست و باید دکمه رو داخل یک تگ فرم قرار بدید و این دکمه بازگشت رو بصورت سابمیت بزارید تا به مرحله قبل برگرده یا اینکه اگر نمی خواهید از فرم استفاده کنید در تمام سورس کد به جای $_POST از $_GET استفاده کنید و به جای ساخت فرم برای دکمه بازگشت فقط آدرس url مرجله قبلی را بصورت index.php?page=search بزارید.
موفق باشید.
خیلی متشکرم قربون دستت واقعاََ عالی شد استاد .
خواهش می کنم.
موفق و پیروز باشید.
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\register\dbcontroller.php on line 21
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\register\dbcontroller.php on line 49
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\register\dbcontroller.php on line 51
Invalid query
این ارور ها برای چیه
پارامتر اول را باید متغیر کانکشن دیتابیس رو پاس بدید و بعد برای پارامتر دوم رو پر کنید
سلام
لطفا برای کد هاتون یه دمو بزارید
تا مطمئن نشیم که کد همونطوری اجرا میشه که می خوایم براش وقت نمیزاریم و میریم سراغ یه سایت دیگه.
جسارت من رو ببخشید اما واقعیت همینه.
با آرزوی موفقیت
سلام. دوست عزیز فعلا دمویی برای پست های آموزشی قرار ندادیم و برای بیشتر مطالب یک نمونه سورس در قسمت باکس دانلود و بعضی پست ها اسکرین شات قرار دادیم که از کارکردش کاملا مطمین هستیم حالا این بستگی به نیاز شما داره که آیا همان چیزی هست که دنبالش هستید یا خیر.
این پست هم بسیار ساده هستش و یک تکه کد داره که کمتر از ۳۰ثانیه میتونید روی لوکال تست و نتیجه رو ببنید.
همچنین چشم این مورد رو حتما به سایت اضافه میکنیم که دمویی برای تست کدها وجود داشته باشه.
موفق باشید.