php学习笔记-保留表单在用户提交表单后的输入数据
2017-06-01 10:48
796 查看
背景:
从之前的例子可以看出,在输入框中填写相应信息之后,点击提交后,输入框中的信息被清除了。本文阐述如何防止表单在用户提交表单后清空所有输入字段。实施:
如需在用户点击提交按钮后,在输入字段中显示值,我们在以下输入字段的 value 属性中增加了一小段 PHP 脚本:name、email 以及 website。在 comment 文本框字段中,我们把脚本放到了<textarea> 与 </textarea>之间。这些脚本输出
$name、$email、$website 和 $comment变量的值。
然后,对于单选按钮,我们还需要显示选中了哪个单选按钮。对此,我们必须操作 checked 属性(而非单选按钮的 value 属性):
姓名:<input type="text" name="name" value="<?php echo $name;?>"> <span class="error">* <?php echo $nameErr;?></span> <br><br> 电邮:<input type="text" name="email" value="<?php echo $email;?>"> <span class="error">* <?php echo $emailErr;?></span> <br><br> 网址:<input type="text" name="website" value="<?php echo $website;?>"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 评论:<textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>//注意这里的添加 <br><br> 性别: <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">女性 <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">男性
完整的表单实例
<!DOCTYPE HTML> <html> <head> <style> .error {color: #FF0000;} </style> </head> <body> <meta charset=utf-8> <?php // 定义变量并设置为空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "姓名是必填的"; } else { $name = test_input($_POST["name"]); // 检查姓名是否包含字母和空白字符 if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "只允许字母和空格"; } } if (empty($_POST["email"])) { $emailErr = "电邮是必填的"; } else { $email = test_input($_POST["email"]); // 检查电子邮件地址语法是否有效 if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) { $emailErr = "无效的 email 格式"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "无效的 URL"; } } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "性别是必选的"; } else { $gender = test_input($_POST["gender"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>PHP 验证实例</h2> <p><span class="error">* 必需的字段</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 姓名:<input type="text" name="name" value="<?php echo $name;?>"> <span class="error">* <?php echo $nameErr;?></span> <br><br> 电邮:<input type="text" name="email" value="<?php echo $email;?>"> <span class="error">* <?php echo $emailErr;?></span> <br><br> 网址:<input type="text" name="website" value="<?php echo $website;?>"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 评论:<textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>//注意这里的添加 <br><br> 性别: <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">女性 <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">男性 <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="提交"> </form> <?php echo "<h2>您的输入:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?> </body> </html>
运行结果:
在输入框输入对应的信息之后,点击提交结果如下图所示:从中可以看出,用户提交表单后的输入数据仍然保留下,而不会像之前那样被清空。
相关文章推荐
- php学习笔记:第八节--表单和用户输入,$_GET,$_POST
- php表单,HTML表单提交后,返回,保留表单数据
- PHP再学习3——RT Thread + LwIP提交表单,文本保存数据
- php基础教程——表单验证(必填、提交后数据保留)
- PHP 学习笔记——接受表单数据。
- 黑马程序员之WinForm编程基础学习笔记:用户在文本框1,2中输入两个数,点击按钮,在文本框3中显示从文本框1中的数字到文本框2中的数字之间的累加和。如果1或者2为错误的数据格式,则弹出对话框提示错
- PHP学习笔记——表单数据获取,Session,Cookie
- 学习笔记——表单提交数据
- Angular2文档学习的知识点摘要——显示数据、用户输入、表单
- 学习笔记_springmvc返回值、数据写到页面、表单提交、ajax、重定向
- php实现提交表单后保留上一次输入的值
- php学习笔记(十六)登录页面实例-输入检查和粘性表单
- PHP学习笔记--第四章.获取数据
- ExtJS学习笔记(5)- Form表单的提交 -Ext.FormPanel
- jQuery 学习笔记四 Ajax提交数据
- php学习笔记(3):PHP基本语法和数据类型:
- PHP服务器端防止用户重复提交数据
- (原创)如何让web页面产生服务器数据返回后仍然能够保留到用户输入的位置!
- php 字符过滤类,用于过滤各类用户输入的数据
- ASP.NET学习手记:验证用户表单输入