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