【发布时间】:2011-05-03 21:11:19
【问题描述】:
我从我的 HTML 表单提交中调用 PHP 脚本。
然后我在 PHP 脚本中处理从这个 HTML 表单中检索到的值,现在我想在我从这个 PHP 脚本调用的另一个 HTML 表单中显示这些值。 如何检索此变量?
注意:我尝试了echo,但我认为我实际上想在表单 (HTML) 中显示此值,而不是在 PHP 标记中再次破坏它。
【问题讨论】:
标签: php html session variables
我从我的 HTML 表单提交中调用 PHP 脚本。
然后我在 PHP 脚本中处理从这个 HTML 表单中检索到的值,现在我想在我从这个 PHP 脚本调用的另一个 HTML 表单中显示这些值。 如何检索此变量?
注意:我尝试了echo,但我认为我实际上想在表单 (HTML) 中显示此值,而不是在 PHP 标记中再次破坏它。
【问题讨论】:
标签: php html session variables
我不确定您所说的“不再用 PHP 标记破坏它”是什么意思。 HTML 本身无法访问 PHP 变量。这是因为 PHP 是一种服务器端语言,而 HTML 是一种客户端语言。但这是打印从表单中检索到的 php 变量的最简单方法。
<form>
<p>Your name: <?php echo $_POST['name'] ?></p>
</form>
这是假设有一个表单使用 POST 提交了一个名为“名称”的字段。
您可以在文件顶部的 php 脚本中处理名称,然后在打印 html 时简单地回显它。这样,您就不会在 HTML 中混入太多的 php 代码(这使它看起来更干净)。
【讨论】:
一旦您在 PHP 脚本中获得了值,您是否正在调用一个新脚本?如果是这样,您可能希望将值保存在 $_SESSION["varible_name"] 中。如果没有,你只需要回应它。
【讨论】:
这取决于您通过$_POST 或$_GET 访问表单数据的方式。为简单起见,我假设您使用 $_GET 并修改 this example 以更清晰。
假设您在welcome.php 上托管了一个表单:
<form action="welcome.php" method="get">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
现在结果会返回到同一个页面,所以你要修改页面说:
<form action="welcome.php" method="get">
Name: <input type="text" name="fname" value="<?php echo $_GET["fname"]; ?>"/>
Age: <input type="text" name="age" value="<?php echo $_GET["age"]; ?>" />
<input type="submit" />
</form>
尽管您会注意到我们使用的是同一个页面,并且我们只能拥有一个版本的页面,所以我们希望在设置了变量的条件下进行渲染。
if (isset($_GET["fname"])){
//code to print second form
}
else{
//code to print first form
}
或者,以另一种方式(使用ternary operator):
<form action="welcome.php" method="get">
Name: <input type="text" name="fname" value="<?php echo ((isset($_GET["fname"]))?$_GET["fname"]:""); ?>"/>
Age: <input type="text" name="age" value="<?php echo ((isset($_GET["age"]))?$_GET["age"]:""); ?>" />
<input type="submit" />
</form>
【讨论】: