ColdFusion将隐藏的表单变量转换为结构

时间:2017-10-17 20:19:58

标签: html coldfusion

我正在处理的应用程序隐藏了在页面初始加载时设置的输入变量。需要跨所有页面访问变量。不将这些转换为会话变量的原因是用户可以打开具有不同参数的另一个浏览器,并将这些值作为隐藏输入传递使其无任何问题地工作。什么是最好的替代方案,以摆脱这些隐藏的输入..我尝试将所有变量转换为结构,但同样结构需要作为表单提交的一部分发布,以使其可用于后续页面。另一个缺点是这个应用程序是使用frames.I没有任何代码发布。

1 个答案:

答案 0 :(得分:1)

听起来好像您希望与同一Web会话关联的不同浏览器实例维护自己不同的数据集。通过传递formurl变量来实现这一点似乎是一个坏主意。

您可以使用的一种方法是onSessionStart(或根据需要)在用户会话中创建一个结构来保存数据实例。例如

session.data = {
    someRandomKey: {
        valueA: 42,
        valueB: "Porridge"
    }
}

然后将someRandomKey作为隐藏的form字段或查询字符串参数传递。现在,当他们提交表单来更新变量时,您可以使用隐藏表单字段中的id从session.data中找到适当的结构。

当用户需要这个表单的新实例时,给他们一些方法,如链接或按钮,创建一个新的唯一键,在session.data中使用此键插入一个结构,并用任何默认值填充它然后需要加载传递新id的表单作为隐藏表单字段或querystring param。