什么是最佳实践,用于通过变量从一个HTML网页到另一个?
-
03-07-2019 - |
题
我是相对较新,网络应用程序,所以我希望这个问题不是太基本,用于每一个人。
我创建了一个HTML网页形式包含dojox数据表格(v1。2)填充的行为描述为不同的杂货。之后用户选择的项目,他感兴趣,他会点击的"提交"按钮。
在这一点上,我可以得到的javascript功能的储存项目ID数为javascript变量,但我不知道如何通过这个ID到的后续HTML网页。
我应该刚刚通过身份作为一个网址查询串参数?是否有任何其他更好的方法?
编辑:整个过程就像是购物车。用户将会选择该项目的网格,然后在下一页的用户将会填补了一些详细信息,然后结算。
我还要提到的是,我使用的技术发展的看法所以这是发生在一个普惠制网页,但目前它不仅包含HTML。
解决方案
您可以使用隐藏的输入字段;作为表格的一部分传播。
<html>
<head>
</head>
<body>
<script type="text/javascript">
function updateSelectedItemId() {
document.myForm.selectedItemId.value = 2;
alert(document.myForm.selectedItemId.value);
// For you this would place the selected item id in the hidden
// field in stead of 2, and submit the form in stead of alert
}
</script>
Your grid comes here; it need not be in the form
<form name="myForm">
<input type="hidden" name="selectedItemId" value="XXX">
The submit button must be in the form.
<input type="button" value="changeSelectedItem" onClick="updateSelectedItemId()">
</form>
</body>
</html>
其他提示
这是好的,但更好的是使用一些脚本语言,如JSP,PHP,ASP ....你可以使用简单的POST和GET方法。
最好的方法(恕我直言)将包括在URL
href="http://NewPage.htm?var=value";
encodeUriComponent一串值
使用POST将变量发送到另一个页面的一种方法是将指向后续页面的链接作为action属性为目标页面的表单上的提交输入。对于您拥有的每个变量,您可以包括使用属性类型“隐藏”的输入。在这种形式下,只显示按钮。
另一种选择是在页面上用PHP之类的东西动态生成链接,你基本上可以重新填充当前的GET查询。
最后,您始终可以将此信息存储在PHP $ _SESSION数组中,而不必担心通过站点导航不断传递这些变量。
您的选择取决于您希望保留相同变量的导航选项数量。它还取决于您对后端的安全程度以及您希望向高级网络用户披露的金额。
如果您只需要在后续页面上使用ID,则可以将id作为查询字符串参数传递。
但有时你需要传递更多信息并将各种参数传递给不同的页面,并且必须为不同的页面维护不同的参数集可能会有点毛茸茸。在这种情况下,我建议您在表单上保留一个隐藏字段,并创建一个存储每个参数的参数对象。使用JSON序列化参数对象并将其存储在隐藏字段中。将表单发回服务器。加载下一页时,反序列化对象并检索所需的值。
假设您仅限于使用html页面,我认为最好的方法是将查询字符串中的id传递给下一页。将该值从下一页的查询字符串中拉回来相对容易。如果你需要对传递变量更加隐蔽(或者你需要将变量保留多个页面),你也可以设置一个cookie并在下一页上检索它。
由于您尝试在Grails应用程序中执行此操作,因此您可以选择使用Flash范围。如果您想直接从一个HTML页面转到下一个HTML页面,这可能没有任何意义,因为范围将在控制器中定义。如果您不需要在请求之间进行任何处理,我建议使用隐藏的表单字段来保持简单。