您的位置:首页 > 编程语言 > PHP开发

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;
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php