PHP 表单 - 必需字段


本章节我们将介绍如何设置表单必需字段及错误信息。


PHP - 必需字段

在上一章节我们已经介绍了表的验证规则,我们可以看到"名字", "E-mail", 和 "性别" 字段是必需的,各字段不能为空。

字段 验证规则
名字 必需。 + 只能包含字母和空格
E-mail 必需。 + 必需包含一个有效的电子邮件地址(包含"@"和".")
网址 可选。 如果存在,它必需包含一个有效的URL
备注 可选。多行字段(文本域)。
性别 必需。必需选择一个。

如果在前面的章节中,所有输入字段都是可选的。

在以下代码中我们加入了一些新的变量: $nameErr, $emailErr, $genderErr, 和 $websiteErr.。这些错误变量将显示在必需字段上。 我们还为每个$_POST变量增加了一个if else语句。 这些语句将检查 $_POST 变量是 否为空(使用php的 empty() 函数)。如果为空,将显示对应的错误信息。 如果不为空,数据将传递给test_input() 函数:

  1. <?php
  2. // 定义变量并默认设为空值
  3. $nameErr = $emailErr = $genderErr = $websiteErr = "";
  4. $name = $email = $gender = $comment = $website = "";
  5.  
  6. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  7. if (empty($_POST["name"])) {
  8. $nameErr = "名字是必需的。";
  9. } else {
  10. $name = test_input($_POST["name"]);
  11. }
  12.  
  13. if (empty($_POST["email"])) {
  14. $emailErr = "邮箱是必需的。";
  15. } else {
  16. $email = test_input($_POST["email"]);
  17. }
  18.  
  19. if (empty($_POST["website"])) {
  20. $website = "";
  21. } else {
  22. $website = test_input($_POST["website"]);
  23. }
  24.  
  25. if (empty($_POST["comment"])) {
  26. $comment = "";
  27. } else {
  28. $comment = test_input($_POST["comment"]);
  29. }
  30.  
  31. if (empty($_POST["gender"])) {
  32. $genderErr = "性别是必需的。";
  33. } else {
  34. $gender = test_input($_POST["gender"]);
  35. }
  36. }
  37. ?>

PHP - 显示错误信息

在以下的HTML实例表单中,我们为每个字段中添加了一些脚本, 各个脚本会在信息输入错误时显示错误信息。(如果用户未填写信息就提交表单则会输出错误信息):

  1. <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
  2. 名字: <input type="text" name="name">
  3. <span class="error">* <?php echo $nameErr;?></span>
  4. <br><br>
  5. E-mail: <input type="text" name="email">
  6. <span class="error">* <?php echo $emailErr;?></span>
  7. <br><br>
  8. 网址: <input type="text" name="website">
  9. <span class="error"><?php echo $websiteErr;?></span>
  10. <br><br>
  11. 备注: <textarea name="comment" rows="5" cols="40"></textarea>
  12. <br><br>
  13. 性别:
  14. <input type="radio" name="gender" value="female">
  15. <input type="radio" name="gender" value="male">
  16. <span class="error">* <?php echo $genderErr;?></span>
  17. <br><br>
  18. <input type="submit" name="submit" value="Submit">
  19. </form>

PHP 表单 - 3(PHP 表单 - 必需字段)的更多相关文章

  1. PHP 表单 - 必需字段

    PHP - 必需字段 在上一章节我们已经介绍了表的验证规则,我们可以看到"Name", "E-mail", 和 "Gender" 字段是必须 ...

  2. 解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位

    $(function () { //解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位 var u = navigator.userAgent; var isiOS = !! ...

  3. BootStrap 智能表单系列 九 表单图片上传的支持

    本章介绍如何在生成表单后,可以支持上传图片后可以及时预览图片 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartForm/blob/maste ...

  4. BootStrap 智能表单系列 六 表单数据绑定(编辑页面的数据绑定)

    本章介绍如何在生成表单后,将一个model的数据展示到form表单中(一般用于编辑页面) 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartF ...

  5. BootStrap 智能表单系列 五 表单依赖插件处理

    这一章比较简单哦,主要就是生产表单元素后的一些后续处理操作,比如日期插件的渲染.一些autocomplete的处理等,在回调里面处理就可以了, demo: $("input.date-pic ...

  6. BootStrap 智能表单系列 四 表单布局介绍

    表单的布局分为自动布局和自定义布局两种: 自动布局就是根据配置项中第二级配置项中数组的长度来自动使用不同的bootstrap栅格,通过设置autoLayout为true可以实现自动布局 自动以布局就是 ...

  7. HTML 5 服务器发送事件、Input 类型、表单元素、表单属性

    HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器 ...

  8. bootstrap 基础表单 内联表单 横向表单

    bootstrap 基础表单 内联表单 横向表单 <!DOCTYPE html> <html> <head> <title></title> ...

  9. Django学习笔记(7)——单表操作和多表操作

    单表操作 1,创建模型 创建名为book的APP,在book下的models.py中创建模型: from django.db import models # Create your models he ...

随机推荐

  1. wikioi 1294 全排列 dfs

    1294 全排列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold       题目描述 Description 给出一个n, 请输出n的所有全排列 输入描述 Inpu ...

  2. jsoncpp 0.5 ARM移植

    1.下载jsonapp 0.5 https://github.com/open-source-parsers/jsoncpp 2.编译 platform 没有包含 arm 平台,需要把源码提取出来,独 ...

  3. Linux 内核编译步骤及配置详解

    前言    Linux内核是操作系统的核心,也是操作系统最基本的部分. Linux内核的体积结构是单内核的.但是他充分采用了微内核的设计思想.使得虽然是单内核.但工作在模块化的方式下.并且这个模块可以 ...

  4. 模仿JQuery 的添加多个事件的原理

    var jquery=function(dom){ var obj={ ready:function(fn){ if(typeof dom.onload=="function"){ ...

  5. LAMP LNMP 和 LNMPA

    LAMP指的是:Linux+Apache+MySQL+Perl/PHP/Python LAMP是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的自由软件: Linux,操作系统: Apache ...

  6. 2) broadcast,这是启动完毕之后,集群中的服务器开始接收客户端的连接一起工作的过程,如果客户端有修改数据的改动,那么一定会由leader广播给follower,所以称为”broadcast”.

    2) broadcast,这是启动完毕之后,集群中的服务器开始接收客户端的连接一起工作的过程,如果客户端有修改数据的改动,那么一定会由leader广播给follower,所以称为”broadcast” ...

  7. 咏南WEB框架群集

    咏南WEB框架群集 咏南WEB框架支持群集部署,支持负载均衡和自动故障转移. 咏南WEB群集部署在阿里云服务器上面. 在线测试:http://47.106.93.126:9999/

  8. windows下的Nginx+Squid+Tomcat+Memcached集群

  9. Spring3.1.2与Hibernate4.1.8整合

    整合Spring3.1.2 与 Hibernate 4.1.8 首先准备整合jar: Spring3.1.2: org.springframework.aop-3.1.2.RELEASE.jar or ...

  10. Eclipse点不出方法了

    window→preferences→java→editor→Content Assist→Advanced 然后选中右上方的所有 右下方选中一个即可.