我有一个表单域:
<input type="text" value="" name="Email" id="Email">
我的表单操作确认网址是这样的:
http://.../index.php?Email=<?php echo $_POST['Email']; ?>
但是,提交后,电子邮件参数未通过。这是可以在 PHP 中完成的,还是仅在初始页面加载时读取该字段?
谢谢
您的问题是您正在混合 $_GET 和 $_POST。
在这里查看您的代码http://.../index.php?Email=<?php echo $_POST['Email']; ?>
,当您发布到该代码时,将不再有 $_POST['Email'],而是 $_GET['Email']。所以第一个帖子可能会工作(如果你正在使用<form method="post" action="...">
),但第二个提交将失败,因为$_POST['Email']
不再存在。
所以我建议你不要在动作中使用参数。相反,将它们放在隐藏字段中或切换到仅$_GET
参数。
将第二页上的表格更改为:
<form action="http://.../index.php" method="POST">
<input type="hidden" name="Email" id="Email" value="<?php echo $_POST['Email'];?>" />
...
</form>
将第一页上的表单更改为<form ... method="GET">
然后将第二页的表格改为使用$_GET['Email']
,方法改为GET
。
<form action="http://.../index.php??Email=<?php echo $_GET['Email'];?>" method="GET">
...
</form>
只需http://.../index.php?Email=<?php echo $_REQUEST['Email']; ?>
用作您的操作 url,因为 $_REQUEST 是 $_GET 和 $_POST 的合并。请注意,这是 $_GET、$_POST 和 $_COOKIE 的合并。
您不需要定义GET
请求的结构;这就是表格的作用。
例如:
<form action="workerbee.php" method="GET">
<input type="text" name="honey_type" value="sweet" />
</form>
...提交时,会自动将字段 - honey_type
- 附加到您的 URL。它最终会是这样的:
http://example.com/workerbee.php?honey_type=sweet
然后,您可以通过$_GET['honey_type']
in访问该值workerbee.php
。要使用现有提交的值预填充表单 - 假设workerbee.php
包含表单 - 只需添加一个条件value
参数:
<?php
$honey_type = !empty($_GET['honey_type']) ? $_GET['honey_type'] : null;
?>
<input type="text" name="honey_type" value="'<?php echo htmlspecialchars($honey_type); ?>'" />
这取决于您的 FORM 方法
你的表格应该是
<form method='post' action='http://.../index.php'>
<input type="text" value="" name="Email" id="Email">
<input type='submit' value='Post data'>
</form>
要访问 index.php 中的电子邮件,您可以编写如下代码
<?php
$emailValue = $_POST["Email"];
//Use variable for further processing
?>
如果您的表格如下(请检查该方法是 get
<form method='get' action='http://.../index.php'>
<input type="text" value="" name="Email" id="Email">
<input type='submit' value='Post data'>
</form>
要访问 index.php 中的电子邮件,您可以编写如下代码
<?php
$emailValue = $_GET["Email"];
//Use variable for further processing
?>
如果您尝试使用当前表单中的数据,您的表单标签应如下所示:
<form action="http://.../index.php" method="GET">
如果您尝试传递服务器已经拥有的数据(例如来自以前的表单),那么您应该使用隐藏字段:
<input name="email" type="hidden" value="<?php echo $_POST['Email']; ?>">