如何在PHP中添加多个按钮

时间:2015-09-01 16:40:20

标签: javascript php

我正在尝试创建一个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>

2 个答案:

答案 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>

对剩余的行执行相同的操作。