表单提交后访问$ _GET值

时间:2013-12-06 20:50:37

标签: php forms

example.php从另一个页面获取x的值$ _GET ['x']。

我在同一页面中有一个表单(example.php)。提交表格后,我将失去x的价值。

我的问题是:如何在提交表单后保留并访问x的值。

代码是这样的:

<body>
<?php
if(isset($_GET['y'])) {
    $y = $_GET['y']; // I have also tried with $_REQUEST    
}

if($_POST['submit']) {
    $x = $_POST['field1'];
    echo $y."<br>";
    echo $x;
}

?>

<form name="form1" action="example.php" method="post">
    <input type="text" name="field1" />
    <input type="submit" name="submit" value="Echo the name" />
</form>
</body

我也根据建议尝试了以下内容,但它不起作用:

<body>
<?php
if(isset($_POST['submit'])) {
    $x = $_POST['field1'];
    $y = $_POST['y'];
    echo $y."<br>";
    echo $x;
}
?>

<form name="form1" action="dollar_get_and_form1.php" method="post">
    <input type="text" name="field1" />
    <input type="hidden" name="y" value="<?php htmlentities($_GET['y']) ?>" />
    <input type="submit" name="submit" value="Echo the name" />
</form>
</body>

问题通过以下代码解决:

<body>
<?php
if(isset($_GET['x'])) {
    $x = $_GET['x'];
    echo $x;
}
if(isset($_POST['submit'])) {
    echo $_POST['xValue'].'<br>'; 
    echo $_POST['y'];
}    
?>    
<form name="form1" action="example.php" method="post">
    <input type="text" name="y" />
    <input type="submit" name="submit" value="Echo the name" />
    <input type="hidden" id="xValue" name="xValue" value="<?php echo $x; ?>"/>
</form>    
</body>

感谢大家的建议。如果有更好的方法,请提出建议。

4 个答案:

答案 0 :(得分:2)

你的表格是POST而不是GET所以变量将会消失。获得所需结果的最佳方法是通过隐藏的表单字段:

<input type="hidden" name="y" value="<?=htmlentities($_GET['y'])?>" />

然后,当用户提交表单

时,它将以$_POST['y']的形式提供

答案 1 :(得分:0)

您的表单的方法 发布,因此,$_GET没有$_GET,而$_GET['y']在此无效...
{{1}}来自哪里?

答案 2 :(得分:0)

由于HTTP是无状态协议,因此Get / Post值持久性仅限于最后一页和当前页面。你必须使用其中一种技术: “隐藏字段”,“会话”,“cookie”或写入/读取到tmp。文件以保存值/状态。

答案 3 :(得分:-1)

使用get而不是post method ='get';并创建一个字段(隐藏),如下所示


<body>
<?php
if(isset($_GET['y'])) {
    $y = $_GET['y']; // I have also tried with $_REQUEST    
}

if($_GET['submit']) {
    $x = $_GET['field1'];
    echo $y."<br>";
    echo $x;
}

?>

<form name="form1" action="example.php" method="get">
    <input type="text" name="field1" />
    <input type="hidden" name="y" value=1 />
    <input type="submit" name="submit" value="Echo the name" />
</form>
</body