我正在尝试创建一个php表单来记录支持团队响应请求所花费的时间。我添加了3个按钮,一个是在联系支持团队时点击,第二个是在收到回拨时点击。第三个是将数据提交到文件。
我遇到的问题是,当我点击第一个按钮时,我得到了数据/时间,但它消除了表单中的所有先前字段。当我按下第二个按钮时,同样的事情发生了。
有关如何在不清理表单的情况下保存数据/时间的任何建议将不胜感激。请原谅我,因为我是新手。
以下是代码:
<th>
<p>Vendor was contacted at:</p>
<button name="start" >Start</button><br>
<?php
if (isset($_POST['start']))
{
$date_clicked = date('Y-m-d H:i:s');;
echo " " . $date_clicked . "<br>";
}
?>
</th>
</tr>
<tr>
<th>
<p>Vendor responded at:</p>
<button name="Response" >Response</button><br>
<?php
if (isset($_POST['Response']))
{
$date_clicked = date('Y-m-d H:i:s');;
echo " " . $date_clicked . "<br>";
}
?>
</th>
</tr>
<tr>
<th>
<p><input type='submit' name='submit' value='Submit'></p>
答案 0 :(得分:0)
您必须回显表单元素中的已发布值。
示例:
<form method="post" action="">
<input type="text" name="something" value="<?= isset($_POST['something']) ? htmlspecialchars($_POST['something']) : '' ?>" />
<input type="submit" name="submit" />
</form>
答案 1 :(得分:0)
您的页面正在以这种方式工作,因为$_POST
数据仅在提交时设置一次,然后立即清除。由于您当前没有以可检索的方式将信息存储在服务器上,即在数据库中,因此您需要找到存储它的方法。正如@ Tyler-Collins指出的那样,您最好的选择是使用$_SESSION
数组。
要启动$_SESSION
数组,请使用:
<?php session_start(); ?>
首先执行此操作,并在要继续使用$_SESSION()
数组的每个页面上执行此操作。然后,在“开始”行中:
<th>
<p>Vendor was contacted at:</p>
<button name="start" >Start</button><br>
<?php
if (isset($_POST['start'])) // if user just clicked the 'start' button
{
$date_clicked = date('Y-m-d H:i:s');
$_SESSION['start'] = $date_clicked; // put 'start' time in session
echo " " . $date_clicked . "<br>";
}
elseif (isset($_SESSION['start'])) // user didn't just click 'start', but 'start' value is already set
{
echo " " . $_SESSION['start'] . "<br>";
}
?>
</th>
对剩余的行执行相同的操作。