Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 完成的表单保存到新页面_Php - Fatal编程技术网

Php 完成的表单保存到新页面

Php 完成的表单保存到新页面,php,Php,我有一个HTML表单,当它被提交到一个php页面时,该页面会写入一个新的HTML,其中新的HTML具有写入的第一个HTML页面的值 例如,在输入中:我输入文本“嗨”,然后点击提交。然后转到一个php页面,该页面创建新的HTML,其中输入:text具有value=“hi” 我在下面发布的代码可以正常工作,但我必须输入一个“dummy”name=“x”以替换为value=“myvalue”。有没有一种方法可以直接将其添加到元素中,而不是替换某些内容 还有没有一种方法可以使用它将值放入textarea

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

例如,在输入中:我输入文本“嗨”,然后点击提交。然后转到一个php页面,该页面创建新的HTML,其中输入:text具有value=“hi”

我在下面发布的代码可以正常工作,但我必须输入一个“dummy”name=“x”以替换为value=“myvalue”。有没有一种方法可以直接将其添加到元素中,而不是替换某些内容

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

使用此问题的帮助:我正在使用以下代码:

$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;

这可以通过使用
POST
GET
将表单的值传递给
somepage.php
来实现-我在下面的示例中使用了
POST
<然后,code>somepage.php将进行检查以确保向其传递了一个值,如果确实传递了一个值,则将生成一个表单,其中包含post数据的输入字段

<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>';
}
if(isset($\u POST['some\u field'])){
回声'
';
}
其他的
{
echo“发布以下数据:
”; 回声'; 打印(邮政美元); 回声'; }
不要使用file\u get\u内容将所有HTML加载到变量中,只需将PHP文件用作HTML模板即可。无论在何处使用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>

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



通常的方法是首先使用脚本创建表单,在提供值时填写
$\u POST
中的值,而不是使用静态HTML文件。我理解你的意思,但出于我的目的,我确实希望使用输入值复制整个以前的HTML。这实现了这个目标。使用单个PHP页面呈现表单。第一次运行表单时,它将为空,因为未设置$\u POST['on'],因此$on变量将被分配一个空字符串。当你提交表单时,$on变量会被帖子的内容填充,所以HTML保持不变,但是值会改变。我做错什么了吗?当我使用您的代码并提交时,它只是刷新页面,输入没有保存。我在输入框中缺少名称。如果您将上面的代码保存为“thispage.php”,它应该完成您要查找的内容。是的,就是这样。那么如何将值写入新页面,如果使用此方法,新页面将保留它,而不是输入的任何内容。我之所以需要实际文件来说明这一点,是因为我正在使用一个pdf生成程序happen@Brad你说的
是什么意思?当我提交表单时,它应该转到somepage.php,它会打印一个输入正确的表单?如果是这样的话,我得到的只是一个空白屏幕。@Brad是至少能让你访问somepage.php的表单吗?这个代码对我来说很好。。。用
else
语句查看我的更新,这样它至少应该输出一些东西。它将转到somepage.php,用你的else语句我找不到任何数据。
<?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>