完成的表单保存到新页面

时间:2013-04-22 20:43:43

标签: php

我有一个HTML表单,在提交时会转到一个php页面,该页面会写一个新的HTML,其中新的HTML具有写入第一个HTML页面的值。

实施例。在输入:文本中我输入“hi”并点击提交。然后进入一个php页面,该页面创建新的HTML,其中输入:text has value =“hi”

我在下面发布的代码有效但我必须将“虚拟”名称=“x”替换为value =“myvalue”。有没有办法将其添加到元素而不是替换元素。

还有一种方法可以使用它将值放入textarea吗?

使用此问题的帮助:Printing the current page to pdf using wkhtmltopdf我正在使用此代码:

$documentTemplate = file_get_contents ("form.html");

foreach ($_POST as $key => $postVar)
{
if($postVar == "on")
    $documentTemplate = preg_replace ("/name=\"$key\"/", "checked", $documentTemplate);

else
    $documentTemplate = preg_replace ("/name=\"$key\"/", "value=\"$postVar\"",         $documentTemplate);
}

file_put_contents ("form_complete.html", $documentTemplate);

$html = file_get_contents("form_complete.html");

echo $html;

2 个答案:

答案 0 :(得分:1)

这可以通过使用somepage.phpPOST将表单的值传递给GET来完成 - 我在下面的示例中使用了POST。然后somepage.php将检查以确保将值传递给它,如果确实传递了值,则将使用包含发布数据的输入字段生成表单。

<form action="somepage.php" method="post">
    <input type="text" name="some_field" />
</form>

Somepage.php

if(isset($_POST['some_field'])){
echo '
    <form action="">
        <input type="text" value="' . $_POST['some_field'] . '" />
    </form>';
}
else
{
echo 'post data below: <br>';
echo '<pre>';
print_r($_POST);
echo '</pre>';
}

答案 1 :(得分:1)

不要使用file_get_contents将所有HTML加载到变量中,只需将PHP文件用作HTML模板即可。无论您想在何处使用PHP变量,请添加:

<?php echo $somevar; ?>

确保在呈现之前验证您回显到模板中的变量是否存在。您可能希望在模板顶部放置一个PHP块,用于验证并设置您要使用的所有变量:

<?php
if(isset($_POST['on'])){
  $on = $_POST['on'];
}
else
{
  $on = '';
}
?>

<html>
  <head>
  </head>
  <body>
    <form action="thispage.php" method="POST">
      <input type="text" name="on" value="<?php echo $on; ?>">
    </form>
  </body>
</html>

您会及时发现您希望将这些文件分成多个文件,在这种情况下,您可以将HTML放入view.php这样的文件中,并将验证码放入validate.php然后您可以使用require(或require_once)方法将视图包含在验证器的末尾。

有一些常用的模式用于分离逻辑和显示。谷歌MVC。