9 表单
2016-04-14 21:55
531 查看
1 处理表单输入
获取从表单输入的数据<?php if($_SERVER['REQUEST_METHOD'] == 'GET') { ?> <form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>" method="post"> What is your first name? <input type="text" name="first_name" /> <input type="submit" value="Say Hello" /> </form> <?php } else { echo 'Hello, '.$_POST['first_name'].'|'; }
2 处理多页表单
在最后一个页面中显示前几个页面所保存的数据,用_SESSION保存每个页面的信息<?php session_start(); if(($_SERVER['REQUEST_METHOD'] == 'GET') || (!isset($_POST['stage']))) { $stage = 1; } else { $stage = (int)$_POST['stage']; } if($stage > 1) { foreach($_POST as $key => $value) { $_SESSION[$key] = $value; } } if($stage == 1){ ?> <form action='<?php echo $_SERVER['SCRIPT_NAME'] ?>' method='post'> Name: <input type='text' name='name'/></br> Age: <input type='text' name='age'/></br> <input type='hidden' name='stage' value='<?php echo $stage + 1 ?>'/> <input type='submit' value='Next'/> </form> <?php } else if($stage == 2){ ?> <form action='<?php echo $_SERVER['SCRIPT_NAME'] ?>' method='post'> Favorite Color: <input type='text' name='color'/><br> Favorite Food: <input type='text' name='food'/><br> <input type='hidden' name='stage' value='<?php echo $stage + 1 ?>'/> <input type='submit' value='Done' /> </form> <?php } else if($stage == 3){ ?> Hello <?php echo $_SESSION['name'] ?>. You are <?php echo $_SESSION['age']?> years old. and your favorite food is <?php echo $_SESSION['food'] ?> <?php } ?>
3 重新显示带有内置错误的表单
<?php $flavors = array('Vanilla', 'Chocolate', 'Rhinoceros'); if($_SERVER['REQUEST_METHOD'] == 'GET') { display_form(array()); } else { $errors = validate_form(); if(count($errors)) { display_form($errors); } else { print 'The form is submitted!'; } } function display_form($errors) { global $flavors; global $defaults; $defaults['name'] = isset($_POST['name']) ? htmlentities($_POST['name']): ''; $defaults['age'] = isset($_POST['age']) ? "checked='checked'" : ''; foreach ($flavors as $flavor) { if(isset($_POST['flavor']) && ($_POST['flavor'] == $flavor)) { $defaults['flavor'][$flavor] = "selected='selected'"; } else { $defaults['flavor'][$flavor] = ''; } } } ?> <form action="<?php echo $_SERVER['SCRIPT_NAME']?>" method="post"> <dl> <dt>Your Name:</dt> <div> <dd><input type="text" name="name" value='<?php echo $defaults['name'] ?>' /></dd> <?php print_error('name', $errors) ?> </div> <div> </dd><dt>Are you over 18 yeas old?</dt> <dd> <input type="checkbox" name="age" value="1" <?php echo $defaults['age']?>/> Yes </dd> <?php print_error('age', $errors)?> </div> <dt>Your favorite ice cream flavor:</dt> <?php print_error('flavor', $errors) ?> <dd> <select name='flavor'> <?php foreach($flavors as $flavor) { echo "<option {$defaults['flavor'][$flavor]}>$flavor</option>"; }?> </select> </dd> </dl> <input type="submit" value="Send Info"/> </form> <?php function print_error($key, $errors){ if(isset($errors[$key])) { /**print "<dd class='error'> {$errors[$key]} </dd>";**/ print "<font class='error' color='#FF0000'>{$errors[$key]}</font>"; } } function validate_form() { global $flavors; $errors = array(); if(!(isset($_POST['name']) && (strlen($_POST['name']) > 3))) { $errors['name'] = 'Enter a name of at least 3 letters'; } if(! isset($_POST['age']) || ($_POST['age'] != '1')) { $errors['age'] = 'Invalid age checkbox value'; } if(!(isset($_POST['flavor']) && (in_array($_POST['flavor'], $flavors)))) { $errors['flavor'] = 'Choose a valid flavor'; } return $errors; } ?>
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- php7 读取php.ini[4]
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)