【问题标题】:Submit form and read it on different page提交表格并在不同页面上阅读
【发布时间】:2016-12-07 06:57:17
【问题描述】:

我的网站上有一个表单,需要将提交的数据、提交日期和时间保存在 html 文件中,以便在不同的页面上显示数据。

<form>
  <label>Name</label>      <input type="text" />
  <label>Email</label>      <input type="email" />
  <input type="submit" value="Submit">
</form>

表格看起来像这样。按下提交后,应将数据写入到文件 submits.html 中,在现有内容上方,以在顶部显示最近提交的内容。

*** 02 ***
Submited: 2016/12/06 04:32
Tony DiNozzo 
TonyDiNozzo@gmail.com

*** 01 ***
Submited: 2016/12/05 16:08
Timothy McGee
TimothyMcGee@gmail.com

用 php 或 javascript 实现这一目标的最优雅的方法是什么?

【问题讨论】:

  • 首先,你必须像这样命名你的输入:&lt;input name="name" type="text" /&gt; 你想达到什么目的?只显示上次提交的内容?

标签: javascript php jquery html forms


【解决方案1】:

这很简单。您必须在放置以下代码的文件中创建一个名为 file.php 的文件:

<?php

session_start();

if (isset($_GET["name"]) && isset($_GET["email"]) && !empty($_GET["name"]) && !empty($_GET["email"])) {

    if(isset($_SESSION['view']))
    {
        $_SESSION['view']=$_SESSION['view']+1;
    }
    else
    {
        $_SESSION['view']=1;
    }

    $myfile = fopen("submissions.html", "a") or die("Unable to open file!");

    $line = "*** ". $_SESSION["view"] . " ***";
    $date = "Submitted: " . date("Y/m/d H:i", time());
    $name = $_GET["name"];
    $email = $_GET["email"];
    $line2 = "";

    fwrite($myfile, "\n". $line);
    fwrite($myfile, "\n". $date);
    fwrite($myfile, "\n". $name);
    fwrite($myfile, "\n". $email);
    fwrite($myfile, "\n". $line2);

    fclose($myfile);
} else {
    header('Location: index.html');
}

?>

并且在index.html这个内容中:

<html>
<head>
    <title>Form</title>
</head>
<body>
    <form method="get" action="file.php">
        <label>Name</label>
        <input title="name" required name="name" type="text" />
        <label>Email</label>
        <input title="email" required name="email" type="email" />
        <input type="submit" value="Submit">
    </form>
</body>
</html>


解释:

此代码将计入当前会话。 *** (int)+1 *** 需要它
if(isset($_SESSION['view']))
{
    $_SESSION['view']=$_SESSION['view']+1;
}
else
{
    $_SESSION['view']=1;
}

在这里打开文件。 a 代表append

$myfile = fopen("submissions.html", "a") or die("Unable to open file!");

此代码将格式化您的输出:

$line = "*** ". $_SESSION["view"] . " ***";
$date = "Submitted: " . date("Y/m/d H:i", time());
$name = $_GET["name"];
$email = $_GET["email"];
$line2 = "";

看起来像:

然后我们写下每一行:

fwrite($myfile, "\n". $line);
fwrite($myfile, "\n". $date);
fwrite($myfile, "\n". $name);
fwrite($myfile, "\n". $email);
fwrite($myfile, "\n". $line2);

fclose($myfile);

【讨论】:

  • 我喜欢你的想法,解释很有帮助。但是,脚本会打印“无法打开文件!”。可能是什么问题?
  • @Gabriel Winkler 你用 777 还是 764 chmod 文件?你的文件夹是可写的吗? submits.html 文件是否存在?
  • 知道了。权限是问题所在。该代码工作得非常好。谢谢;)
【解决方案2】:

我认为使用 php...

<form method="post" action="submissions.php">
<label>Name</label><input type="text" name="name"/>
<label>Email</label><input type="email" name="email"/>
<input type="submit" value="Submit" name="submit">
</form>

在submissions.php中

date_default_timezone_set('Asia/Jakarta');
$creadate = date("Y-m-d H:i:s");
if(isset($_POST['submit']{
    $name = $_POST['name'];
    $email = $_POST['email'];

   echo "Submitted ". $creadate;
   echo $name;
   echo $email;
}

CMIIW,我是新手:3

【讨论】:

  • OP 要求保存并逆序回读,您的答案不包含该内容,如果$_POST['submit'] 为空,您为什么要回显日期
  • 将 echo 值放入 if 条件中
  • 哎呀...对不起,忘记了。感谢您的指正
【解决方案3】:

首先添加方法postaction要提交数据的地方

    <form method="post" action="yourpage.php">
      <label>Name</label><input type="text"  name="text"/>
      <label>Email</label><input type="email name="email"" />
      <input type="submit" value="Submit">
    </form>

获取数据。 放个帖子

$_POST[name of input] 当您单击提交按钮时,您将被重定向到另一个页面,数据将在下一页发布以查看它是否有效尝试使用 echo $_POST[name of 回显它输入]

【讨论】:

猜你喜欢
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 2017-09-14
  • 1970-01-01
  • 2011-12-29
  • 2012-12-15
  • 2015-08-14
相关资源
最近更新 更多