Php 提交后在文本字段中保留文本
我有一个问题,保持文本字段中的文字,以前有后推提交。我用的是:Php 提交后在文本字段中保留文本,php,html,Php,Html,我有一个问题,保持文本字段中的文字,以前有后推提交。我用的是: <input name="date" type="text" id="date" <?php if(isset($_POST['date'])){echo 'value="'.$_POST['date'].'"';} ?>/> 如果遵循PRG原则(POST redirect GET),则需要在会话中跟踪POST数据 我假设您在提交后会这样做: if (POST is fine) { do somet
<input name="date" type="text" id="date" <?php if(isset($_POST['date'])){echo 'value="'.$_POST['date'].'"';} ?>/>
如果遵循PRG原则(POST redirect GET),则需要在会话中跟踪POST数据
我假设您在提交后会这样做:
if (POST is fine) {
do something;
redirect;
} else {
re-render page and show feedback
}
由于服务器将在重定向时丢弃任何POST数据,因此您需要在每次提交时跟踪POST数据,并在页面加载(GET)时重新填充POST数据
在包含要提交的表单的页面上:
if (isset($_SESSION['user_POST']) {
$_POST = $_SESSION['user_POST'];
}
忽略语法,我对PHP不太感兴趣。这是您的要求
<?php
session_start();
if(isset($_REQUEST['date'])){
$_SESSION['date'] = $_REQUEST['date'];
echo "Succesfully added transaction. Updating table...";
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"6\">";
}
?>
<form method="post">
<input name="date" type="text" id="date" value="<?php echo $_SESSION['date'];?>" />
<input type="submit" name="submit" />
</form>
用于测试
<?php echo $_POST['date']; ?>
如果上述条件正确,请尝试将设置为等于true
<input name="date" type="text" id="date" <?php if(isset($_POST['date']) === true){echo 'value="'.$_POST['date'].'"';} ?>/>
如果您使用的是会话变量。。使用session_start()代码>位于页面顶部
检查表单中是否有method=“POST”,因为默认情况下它是GET
检查表单的操作字段是否正确,例如
如果要将文本放入值中,最好检查value属性中的条件并回显值。因为即使您不在HTML插入标记中写入值。。它取为value=”“
。这将在以后创建一个不明确的条件
所以最好这样做
<form action="abc.php" method="post" >
<input name="date" type="text" id="date" value="<?php if(isset($_POST['date'])){echo $_POST['date'];} ?>" />
.......................
</form
从未听说过,请注意解释一下,如果您有tiem,我是如何做到的?提交页面后,您正在使用meta-HTTP-EQUIV=“refresh”。页面将刷新,因此如果您希望在提交后获得文本字段,您可以使用$\u SESSION或$\u Cookies。我已编辑了我的代码,请复制完整的代码并在本地系统中进行检查。让我知道工作与否。谢谢
<?php echo $_POST['date']; ?>
<input name="date" type="text" id="date" <?php if(isset($_POST['date']) === true){echo 'value="'.$_POST['date'].'"';} ?>/>
<form action="abc.php" method="post" >
<input name="date" type="text" id="date" value="<?php if(isset($_POST['date'])){echo $_POST['date'];} ?>" />
.......................
</form
<?php
session_start(); // as you are using session variables..
if (isset($_POST['submit2']))
{
$con = mysql_connect("xx","xx_xx","xx");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("xx_xx", $con);
$date = $_POST['date'];
$_SESSION['date'] = $_POST['date']; // POST is an array carrying many elements so be specific which element you want. inthis case it is $_POST['date'];
//Writes the to the server
$sql = mysql_query("INSERT INTO `reservation__date` (`reservation_id`, `reservation_date`) VALUES ('000', '$date')") or die(mysql_error());
$query = mysql_query($sql);
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
$_SESSION['DATE'] = $_REQUEST['date'];
echo "Succesfully added transaction. Updating table...";
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"6\">";
mysql_close($con);
}
}
?>