forms - 将 Coldfusion 查询结果传递给 Form
问题描述
我有两个 Coldfusion 模板(getdata.cfm
和generate.cfm
)。getdata.cfm
除了其他任务之外,第一个模板将使用查询从数据库中检索。它将准确检索 16 行数据,每行将有 8 个字段。比如这样:
<cfquery datasource="xyz name="lista">
SELECT n1,n2,n3,n4,n5,n6,n7,n8
FROM atable
WHERE product = "abc"
ORDER BY date DESC LIMIT 16
</cfquery>
第二个模板将生成一些随机数并将它们与这 16 行进行比较。第二个模板上有一个刷新按钮来重新生成数字。这就是我希望它工作的方式。
然而,目前唯一的工作方式是将数据库<cfquery>
放在第二个模板中,generate.cfm
这意味着每次我按刷新时,它都会访问数据库,每次检索相同的 16 行,并生成随机数。这并不理想。因为这 16 行是相同的,所以每次生成一组新的随机数时都检索它们是没有意义的。最好在第一个模板中获取它们一次,然后以某种方式将它们传递给第二个模板。这 16 组数字需要始终显示在屏幕上。需要显示匹配和不匹配的数字。
如何将整个查询结果从第一个模板传递到第二个模板,而不必通过表单将 16 个记录作为 16 个列表作为表单字段传递?这甚至可能吗?提前致谢。
解决方案
- 生成一组随机数。
- 将这些数字与一组静态数据进行比较。
- 重复。
您是否需要在应用程序 (CFML) 代码中进行比较?您能否在单个请求中生成一组随机数并将它们作为查询的一部分发送到数据库?这样,您可以从数据库中获取与您的数字集匹配的记录,而不是全部 16 个。
然后每次刷新都会将新的随机数集发送到数据库,只返回相关数据。
或者,您可以使用cfquery
该cachedWithin
属性来将查询结果存储到内存中一段特定的时间,同时刷新您的随机数字集。
推荐阅读
- c++ - 宏、方法定义和 Visual Studio
- openshift - OpenShift 中的数据流:为单个数据流任务配置内存
- microsoft-graph-api - 在 MS Teams 应用程序的左侧导航栏中隐藏/显示团队
- angular - 基于单选按钮选择隐藏和显示元素?
- reactjs - 如何使用 React JS 更改要启用的输入
- javascript - UnhandledPromiseRejectionWarning:错误:协议错误(Page.navigate):无法导航到无效 URL
- firebase - 删除项目后在 Firebase 上删除网站?
- httpd.conf - 我收到此错误“未在此服务器上找不到请求的 URL”
- html - 对齐按钮和输入
- javascript - 使用 Java 脚本对 .xlsx(Excel 文件)执行数据验证