我有一个表单字段:
<input type="text" value="" name="Email" id="Email">
我的表单操作确认网址是:
http://.../index.php?Email=<?php echo $_POST['Email']; ?>
但是在提交后,Email参数未通过。这是可以在PHP中完成的,还是仅在初始页面加载时读取字段?
由于
答案 0 :(得分:4)
您无需定义GET
请求的结构;这就是形式的作用。
例如:
<form action="workerbee.php" method="GET">
<input type="text" name="honey_type" value="sweet" />
</form>
...提交后,会自动将字段honey_type
- 附加到您的网址。它最终会像这样:
http://example.com/workerbee.php?honey_type=sweet
然后,您可以通过$_GET['honey_type']
中的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); ?>'" />
答案 1 :(得分:4)
您的问题是您正在混合$ _GET和$ _POST。
在此处查看您的代码http://.../index.php?Email=<?php echo $_POST['Email']; ?>
,当您发布到该代码时,将不再是$ _POST ['电子邮件'],而是$ _GET ['电子邮件']。因此,第一篇文章可能会有效(如果您使用<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']; ?>
作为您的操作网址,因为$ _REQUEST是$ _GET和$ _POST的合并。请注意,这是$ _GET,$ _POST和$ _COOKIE的合并。
答案 2 :(得分:3)
这取决于你的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
?>
如果您的表单如下(请检查该方法是否
<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
?>
答案 3 :(得分:0)
如果您尝试使用当前表单中的数据,则表单标记应如下所示:
<form action="http://.../index.php" method="GET">
如果您尝试传递服务器已有的数据(例如来自之前的表单),那么您应该使用隐藏字段:
<input name="email" type="hidden" value="<?php echo $_POST['Email']; ?>">