آموزش PHP : ذخیره و نمایش مجدد اطلاعات فیلد های فرم
در قسمت قبلی این مجموعه به نحوه اعتبارسنجی اطلاعات فیلد ها در PHP پرداختیم. در این بخش به آموزش ذخیره اطلاعات فیلد های فرم و نمایش مجدد آنها در PHP خواهیم پرداخت. به این شکل اگر کاربر پس از ارسال اطلاعات فرم با خطایی مواجه شود، دیگر مجبور به تکمیل همه فیلد های فرم نخواهد بود چرا که اطلاعاتی که قبلا در فیلد ها وارد کرده، مجددا برای وی به نمایش در خواهد آمد و همین امر موجب سهولت هر چه بیشتر تصحیح خطاهای احتمالی و تکمیل اطلاعات مورد نیاز فرم از طرف کاربر خواهد شد. از شما دعوت میکنیم که در ادامه این بخش با مسترکد همراه شوید.
نگهداری اطلاعات فیلد های فرم در PHP
جهت ذخیره اطلاعات وارد شده در هر فیلد و نمایش آنها در زمان بارگذاری مجدد فرم، لازم است که قطعه کد کوچکی را به بخش value یا مقدار هر فیلد ورودی (نام، ایمیل و وبسایت) اضافه کنیم. در مورد ناحیه نوشتاری یا همان textarea نیز این کد را به بین دو تگ <textarea> و </textarea> اضافه خواهیم کرد. کار این قطعه کد این است که مقادیر وارد شده در فیلد ها را که قبلا توسط کاربر در فرم پر شده اند، در بارگذاری مجدد به نمایش بگذارد.
در مرحله بعدی لازم است مشخص کنیم که در ارسال قبلی فرم، کدام دکمه رادیویی انتخاب شده بوده. در اینجا از صفت checked در هر انتخاب رادیویی بهره میگیریم تا انتخاب های قبلی کاربر را مشخص کنیم. (برای مشخص کردن انتخاب های رادیویی بالعکس فیلد های قبلی از value استفاده نمیکنیم)
بر اساس توضیحات فوق، کدی مشابه زیر در اختیار خواهیم داشت :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Name: <input type="text" name="name" value="<?php echo $name;?>"> E-mail: <input type="text" name="email" value="<?php echo $email;?>"> Website: <input type="text" name="website" value="<?php echo $website;?>"> Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea> Gender: <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">Female <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">Male <input type="radio" name="gender" <?php if (isset($gender) && $gender=="other") echo "checked";?> value="other">Other |
نمونه تکمیل شده فرم
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | <!DOCTYPE HTML> <html> <head> <style> .error {color: #FF0000;} </style> </head> <body> <?php // define variables and set to empty values $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = test_input($_POST["name"]); // check if name only contains letters and whitespace if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Only letters and white space allowed"; } } if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_input($_POST["email"]); // check if e-mail address is well-formed if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // check if URL address syntax is valid (this regular expression also allows dashes in the URL) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "Invalid URL"; } } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "Gender is required"; } else { $gender = test_input($_POST["gender"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>PHP Form Validation Example</h2> <p><span class="error">* required field</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Name: <input type="text" name="name" value="<?php echo $name;?>"> <span class="error">* <?php echo $nameErr;?></span> <br><br> E-mail: <input type="text" name="email" value="<?php echo $email;?>"> <span class="error">* <?php echo $emailErr;?></span> <br><br> Website: <input type="text" name="website" value="<?php echo $website;?>"> <span class="error"><?php echo $websiteErr;?></span> <br><br> Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea> <br><br> Gender: <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">Female <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">Male <input type="radio" name="gender" <?php if (isset($gender) && $gender=="other") echo "checked";?> value="other">Other <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </form> <?php echo "<h2>Your Input:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?> </body> </html> |
در این بخش، موارد مرتبط با کار با فرم ها در PHP به پایان میرسد.
مطالعه بخش بعدی : تاریخ و زمان در PHP