0

如何使用第一次运行 PHP 变量时存储的相同值再次执行 PHP 脚本?

例如:
HTML:

<html>
<body>
<form method="post" action="php\test.php">
<input type="text" name="length" />
<input type="submit" value="Run again!" />
</form>
</body>
</html>

php\test.php:

<html>
<body>
<?php
$length = $_POST['length'];
echo $length;
?>
<form method="POST" action="php\test.php">
<input type="submit" value="Run again!" />
</form>
</body>
</html>

如何使按钮再次运行脚本而不会丢失在文本框中输入的“长度”值?当我单击按钮时,我收到一条错误消息,提示找不到“长度”。

谢谢!

4

5 回答 5

2

将变量放入隐藏输入中:

<input type="hidden" name="myvariable" value="value-from-first-run">

或使用会话来。

PS:修复你的action. 即使在 Windows 上,您也应该使用/not 。\

于 2012-11-09T21:36:54.363 回答
1

您需要做的就是在输入 HTML 字段中打印长度参数的值:

php\test.php:
<html>
<body>
<?php
$length = $_POST['length'];
echo $length;
?>
<form method="POST" action="php\test.php">
<input type="submit" value="Run again!" />
<input type="text" value="<?php echo $length?>" name="length" />
</form>
</body>
</html>

理想情况下,您应该验证发布数据以确保您不会得到任何令人讨厌的惊喜。

于 2012-11-09T21:38:10.583 回答
0

我建议将它们存储在$_SESSION. 如果这不起作用我将它们存储在数据库中?

于 2012-11-09T21:36:35.077 回答
0

将变量放在隐藏的输入字段中:

<input type="hidden"
       name="length"
       value="<?php echo htmlspecialchars($_POST['length']); ?>">
于 2012-11-09T21:39:23.083 回答
0

您将长度存储在 $_SESSION 中。像这样:

<html>
<body>
<?php
session_start();

//  First form
$form1 = '<form method="post" action="">
<input type="text" name="length" />
<input type="submit" value="Run again!" />
</form>';

// Resend form
$form2 = '<form method="POST" action="">
<input type="submit" value="Run again!" />
</form>';

if (isset($_POST['length'])) {
    $length = $_SESSION['length'] = $_POST['length'];
    print $length . '<br>';
    print $form2;
} else if (isset($_SESSION['length'])){
    $length = $_SESSION['length'];
    print $length . '<br>';
    print $form2;
} else {
    print $form1;
}
?>
</body>
</html>
于 2012-11-09T21:59:59.530 回答