要在下一页显示的表单输入


Form input to display on next page

我正在尝试获取用户输入框中输入的内容并在下一页上使用它,因此我可以将javascript与输入的值一起使用,但我不知道如何。我看到很多人说使用 php 和服务器端脚本,但我不知道如何设置。我知道php语言。

<html>
<head>
</head>
<body>
<form method="GET" action="level5.html">
Troops: <input type="text" name="troops" value="0">
<input type="submit" value="send">
</body>
</html>

然后在下一页上,我试图得到"你选择了500名士兵",然后将500作为一个javascript变量。

下面是一个读取 url 参数的脚本(源):

HTTP_GET_VARS = [];
strGET = document.location.search.substr(1, document.location.search.length);
if (strGET !== '') {
  gArr = strGET.split('&');
  for (i = 0; i < gArr.length; ++i) {
    v = '';
    vArr = gArr[i].split('=');
    if (vArr.length > 1) {
      v = vArr[1];
    }
    HTTP_GET_VARS[unescape(vArr[0])] = unescape(v);
  }
}
function GET(v) {
  if (!HTTP_GET_VARS[v]) {
    return 'undefined';
  }
  return HTTP_GET_VARS[v];
}

.HTML

我将两端放在同一个文件中。这将重新加载设置参数的页面。显然,如果您保持在同一页面上,则可以执行此操作而无需重新加载。

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>
  <body>
    <form method="GET" action="index.html">
      Troops: <input type="text" name="troops" value="0">
      <input type="submit" value="send">
    </form>
    <script type="text/javascript">
      document.writeln ('Troops: ' + GET('troops'));
    </script>
  </body>
</html>

这是一个 plnkr 来尝试一下。

编辑:我更改了plnkr,使其具有与您的问题完全相同的结构,其中包含两个单独的文件。


由于您想在其他几个页面上使用该值,因此上面的简单方法可能被证明过于有限。因为您必须将所有数据再次发送到下一页。虽然这是绝对可行的,但其他建议的方法之一可能更优雅。

DOM 存储

如果您使用相当现代的浏览器(IE8+,FF3.5+,C4 +),则可以使用DOM存储。

window.sessionStorage.setItem(field, value)保存值 读取值window.sessionStorage.getItem(field) window.sessionStorage.removeItem(field)删除值 window.sessionStorage.clear()删除所有内容

或以同样的方式


localStorage.setItem(field, value)
localStorage.getItem(field)
localStorage.removeItem(field) localStorage.clear()

sessionStoragelocalStorage 之间的区别在于 sessionStorage 仅限于当前浏览器选项卡。 localStorage 更持久一些,可以从浏览器中的任何选项卡访问,具体取决于浏览器和设置,即使在全新的会话中也是如此。

所有内容都将保存为字符串!如果你保存一个数字,例如一个整数,你需要在检索后再次解析它(parseInt())。

下面是一个使用 sessionStorage 的 plnkr 示例。

饼干

Cookie 稍微复杂一些,在 stackoverflow 上,我发现了这个非常好的概述的链接。

这是一个使用上述怪癖网站提供的非常简单的脚本的 plnkr。

createCookie(field, value, x)将值保存到有效期为 x 天的 Cookie 中 readCookie(field)从 cookie 中读取值

请注意,这个 plnkr 中的脚本.js与第一个 plnkr 中的脚本不同!

您可以使用 Cookie。

 <input type="text" id="name">
<input type="submit" name="Submit" id="button2" value="Submit" onClick="javascript:verify()"/>

在 javascript 函数 verify() 中,你可以设置一个 cookie

,如下所示
 function verify()
 {
   var yourname = document.getElementById('name').value;  
   document.cookie = "name="+yourname;
 }

稍后,您可以在代码中的任何位置访问它。

请参阅 http://www.tutorialspoint.com/javascript/javascript_cookies.htm