Php 提交后在文本字段中保留文本
我正在构建一个表单,我希望所有插入的值都将被保留,以防表单提交失败。这是我的代码:Php 提交后在文本字段中保留文本,php,html,textfield,Php,Html,Textfield,我正在构建一个表单,我希望所有插入的值都将被保留,以防表单提交失败。这是我的代码: <?php $error = ""; $name = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = $_POST["name"]; // Verify $_POST['name'] greater than 4 chars if ( strlen($name) < 4 ){ $error= 'Name
<?php
$error = "";
$name = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
// Verify $_POST['name'] greater than 4 chars
if ( strlen($name) < 4 ){
$error= 'Name too short!';
}
}
?>
<html>
<head>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" name="myForm" id="idForm">
<input type="text" placeholder="Name" id="name" name="name" value=""/>
<input type="submit" value="submit"/>
</form>
<?php
echo "<h2>Input:</h2>";
echo $name;
if($error) {
// No Update AND refresh page with $name in text field
echo "<br/>" . $error;
} else {
// Update name in DB
}
?>
</body>
</html>
如果希望保留所有值/输入以供进一步使用,可以使用php会话值实现
此外,您应该使用$\u服务器['SCRIPT\u NAME'],而不是$\u服务器['PHP\u SELF']
Mars您只需在输入的value属性中回显$\u POST['name']。
确保检查POST值以避免XSS。
我还提供了updatedb函数,因为如果名称的长度超过4个字符,则不需要向用户显示表单
<?php
$error = "";
$name = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST['name'])){ //change name content only if the post value is set!
$name = filter_input (INPUT_POST, 'name', FILTER_SANITIZE_STRING); //filter value
}
// Verify $_POST['name'] greater than 4 chars
if ( strlen($name) < 4 ){
$error= 'Name too short!';
} else {
// Update name in DB
// Redirect
}
}
?>
<html>
<head>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" name="myForm" id="idForm">
<input type="text" placeholder="Name" id="name" name="name" value="<?php echo $name; ?>"/>
<input type="submit" value="submit"/>
</form>
<?php
echo "<h2>Input:</h2>";
echo $name;
if($error) {
// No Update AND refresh page with $name in text field
echo "<br/>" . $error;
};
?>
</body>
</html>
解决了。这就是我一直在寻找的解决方案。
我在输入的值标签中添加了以下内容:
<?php if (isset($_POST['name'])) echo $_POST['name']; ?>
因此,输入字段如下所示:
<input type="text" placeholder="Name" id="name" name="name" value="<?php if (isset($_POST['name'])) echo $_POST['name']; ?>"/>
<input type="text" placeholder="Name" id="name" name="name" value="<?php if (isset($_POST['name'])) echo $_POST['name']; ?>"/>