如何从表单中捕获提交的值并使用PHP将它们显示在表单字段的页面上?我已经创建了如下表单:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Order Form</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
</head>
<body>
<form name="orderform" method="get" action="ProcessOrder.php">
<p>Name<br/>
<input type="text" name="name" size="50" /><br/>
<p>Address<br/>
<input type="text" name="address" size="50" /><br/>
<p>City<br/>
<input type="text" name="city" size="50" /><br/>
<p>Province<br/>
<input type="text" name="province" size="2" /><br/>
<p>Postal Code<br/>
<input type="text" name="postalcode" size="6" /><br/>
<p>Email<br/>
<input type="reset"/>
<input type="submit"/><p>
</form>
</body>
</html>
编辑:如果我想使用php文件来获取值并为每个字段显示它们会起作用吗?例如:
<?php
<input type="text" name="name" size="50" value="isset($_GET["name"]) ? htmlspecialchars($_GET["name"]) : ""; ?>" /><br/>
?>
答案 0 :(得分:3)
对于每个字段,请执行以下操作:
<input type="text" name="name" size="50" value="<?php print isset($_GET["name"]) ? htmlspecialchars($_GET["name"]) : ""; ?>" /><br/>
答案 1 :(得分:1)
对于没有框架的简单表单/网站,我通常使用这样的东西。
$name = isset($_GET['name']) ? trim($_GET['name']) : "";
$address = isset($_GET['address']) ? trim($_GET['address']) : "";
$city = isset($_GET['city']) ? trim($_GET['city']) : "";
$province = isset($_GET['province']) ? trim($_GET['province']) : "";
$postalcode = isset($_GET['postalcode']) ? trim($_GET['postalcode']) : "";
...
<p>Name<br/>
<input type="text" name="name" size="50" value="<?= htmlspecialchars($name); ?>" /><br/>
<p>Address<br/>
<input type="text" name="address" size="50" value="<?= htmlspecialchars($address); ?>" /><br/>
<p>City<br/>
<input type="text" name="city" size="50" value="<?= htmlspecialchars($city); ?>" /><br/>
<p>Province<br/>
<input type="text" name="province" size="2" value="<?= htmlspecialchars($province); ?>" /><br/>
<p>Postal Code<br/>
<input type="text" name="postalcode" size="6" value="<?= htmlspecialchars($postalcode); ?>" />
这允许您在需要时设置默认值,或者您可以将它们留空。
或者您可以执行以下操作*
$fields = array(
'name' => '',
'address' => '',
'city' => '',
'provice' => 'Quebec',
'postalcode' => ''
);
foreach ( $fields as $field => $default ) {
$$field = isset($_GET[$field]) ? trim($_GET[$field]) : $default;
}
HTML仍然保持不变。
*不,我没有测试过。
答案 2 :(得分:0)
修:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Order Form</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
</head>
<body>
<form name="orderform" method="get" action="ProcessOrder.php">
<p>Name<br/>
<input type="text" name="name" size="50" value="<?php echo(htmlspecialchars ($_GET['name'])); ?>/><br/>
<p>Address<br/>
<input type="text" name="address" size="50"value="<?php echo(htmlspecialchars ($_GET['address'])); ?> /><br/>
<p>City<br/>
<input type="text" name="city" size="50" value="<?php echo(htmlspecialchars ($_GET['city'])); ?>/><br/>
<p>Province<br/>
<input type="text" name="province" size="2" value="<?php echo(htmlspecialchars ($_GET['province'])); ?>/><br/>
<p>Postal Code<br/>
<input type="text" name="postalcode" size="6" value="<?php echo(htmlspecialchars ($_GET['postalcode'])); ?>/><br/>
<p>Email<br/>
<input type="reset"/>
<input type="submit"/><p>
</form>
</body>
</html>
编辑:很抱歉意识到你使用了GET而不是POST。
答案 3 :(得分:0)
PHP manual有一个很好的教程,介绍如何在PHP中使用表单
<form action="action.php" method="post">
<p>Your name: <input type="text" name="name" /></p>
<p>Your age: <input type="text" name="age" /></p>
<p><input type="submit" /></p>
</form>
Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> years old.
此脚本的示例输出可能是:
你好乔。你今年22岁。