如何使网页保留表单中的变量?

时间:2013-03-30 14:57:58

标签: php forms

很抱歉,如果我在这里复制线程,但我无法在StackOverflow上的任何其他地方找到答案。

基本上我要做的是制作一个列表,其中可以保留用户在表单中输入的变量。目前,我有代码使这成为可能,并且功能正常,但是在用户点击提交后,表单中输入的变量只出现在列表中...一旦刷新页面或从某处转到页面否则,变量就会消失。有什么方法可以阻止这种情况发生吗?

编辑:以下是代码:

//Page 1
<?php

session_start(); 

$entries = array(
0 => $_POST['signup_username'],
1 => $_POST['signup_email'],
2 => $_POST['signup_city']);

$entries_unique = array_unique($entries);
$entries_unique_values = array_values($entries_unique);

echo "<a href='Page 2'>Link</a>";

$_SESSION['entries_unique_values'] = $entries_unique_values;

?>


//Page2 
<?php

session_start(); 

$entries_unique_values = $_SESSION['entries_unique_values'];

foreach($entries_unique_values as $key => $value) {
$ValueReplace = $value;
echo "<br /><a href='http://example.com/members/?s=$ValueReplace'>" . $value . "</a><br/>";
}

?>

4 个答案:

答案 0 :(得分:0)

使用PHP会话或通过JS或使用PHP在Cookies中存储变量值。如果你展示你的工作代码会很好:)

答案 1 :(得分:0)

您的想法很好,但是您只需要为Page 1添加一些条件,只在SESSION制作时设置POST值,这样就可以保留值即使你刷新。否则,当您访问没有POST的页面时,这些值将被空值覆盖,这就是您现在所看到的。您可以像

一样修改它
<?php

session_start(); 

if(isset($_POST["signup_username"]))
{
$entries = array(
0 => $_POST['signup_username'],
1 => $_POST['signup_email'],
2 => $_POST['signup_city']);
$entries_unique = array_unique($entries);
$entries_unique_values = array_values($entries_unique);
$_SESSION['entries_unique_values'] = $entries_unique_values;
}

echo "<a href='http://localhost/Calculator/form2.1.php'>Link</a>";

?>

答案 2 :(得分:0)

你的问题非常模糊。答案取决于你需要存储多少数据,以及你需要多长时间才能存储。

通过变量,我假设您指的是用户输入的数据以及您想要放入变量的数据。 我还假设变量列表是在提交表单时由php创建的。

Php只会在提交表单时创建变量列表,因为php完全在服务器上完成,因此在提交表单之前,您将不会拥有或看到变量。

如果您希望能够在创建列表时看到列表,则可以使用javascript,然后一旦您拥有php变量,javascript列表就不是必需的。

每次你请求一个php页面时它都是相同的,服务器会生成一个全新的页面,这意味着以前页面中的所有未加密编码的变量都会丢失,除非你不断在页面周围发布变量,服务器将没有记住他们。

你有一些可行的选择。

  1. )继续在POST或GET请求中传递用户创建的变量,以便每个页面都有必要的信息。根据情况,它可能是也可能不是一个好主意。如果数据只需要存放一到两页就可以了,但如果您需要从网络上的任何页面访问数据,那就太糟糕了。
  2. 2.)启动会话并将变量存储在会话中。如果用户连接到站点时只需要数据,那就太好了。如果用户关闭窗口或一段时间后会丢失。

    3.)放置一个cookie。不是一个好主意,但对简单数据来说还不错。

    4。)创建一个mysql数据库并在其中删除变量信息。非常适合永久数据。这就是我总是如何复杂的用户数据。

    只有一些想法可供你研究,因为很难看出你的意思。祝你好运。

答案 3 :(得分:0)

您可以使用JavaScript和HTML5本地存储。