如何使用单独的提交按钮访问coldfusion中的动态查询
我正在尝试使用网页中动态搜索的查询结果,方法是使用另一个按钮访问它,该按钮将结果导出为逗号分隔的文件。但是,“导出”按钮无法识别由于某种原因而存在的查询。我一直收到这样一个错误:变量查询未定义 我试图做的是,当用户点击导出按钮时,它将把搜索保存在一个逗号分隔的文件中。现在,我正在使用一个函数,它将以逗号分隔的形式将搜索保存在名为strOutput的变量中。然后我要把它写进一个文件 由于它无法识别查询,我尝试在搜索函数中设置变量,并在页面顶部使用cfparam标记,以便在导出函数中访问它。这也不管用。也许有更好的办法 下面是代码的样子: 这是我的搜索功能的开始:如何使用单独的提交按钮访问coldfusion中的动态查询,coldfusion,Coldfusion,我正在尝试使用网页中动态搜索的查询结果,方法是使用另一个按钮访问它,该按钮将结果导出为逗号分隔的文件。但是,“导出”按钮无法识别由于某种原因而存在的查询。我一直收到这样一个错误:变量查询未定义 我试图做的是,当用户点击导出按钮时,它将把搜索保存在一个逗号分隔的文件中。现在,我正在使用一个函数,它将以逗号分隔的形式将搜索保存在名为strOutput的变量中。然后我要把它写进一个文件 由于它无法识别查询,我尝试在搜索函数中设置变量,并在页面顶部使用cfparam标记,以便在导出函数中访问它。这也不管
<cfif structKeyExists(Form, "submit")>
<cfquery datasource="#Session.HousingDataSource#" name="query">
SELECT *
挑选*
此代码放在上面运行查询并显示结果的代码之后
<cfif structKeyExists(Form,"export")>
<cfset strOutput = QueryToCSV(
query,"studentFirst,studentLast,studentNumber,Detail1,itemDate") />
<!---cffile
action="WRITE"
file="#filename#"
output="#strOutput#"
/--->
</cfif>
在这两种情况下都需要显示查询,因为从一个请求到另一个请求不会记住查询。。。在下面的示例中,当发出第二个请求时,可能尚未创建查询
<cfif StructKeyExists(form, "submit")>
<!--- This only gets run on the first request --->
<cfquery datasource="#session.HousingDataSource#" name="query">
...
</cfquery>
</cfif>
<cfif StructKeyExists(form, "export")>
<!--- This only gets run on the second request --->
<cfset output = QueryToCSV(query, "studentFirst,studentLast,studentNumber,Detail1,itemDate")/>
<cffile action="write" file="#filename#" output="#output#"/>
</cfif>
...
如果您按照以下方式更新代码,那么在导出代码时,将再次运行查询以导出代码
<cfif StructKeyExists(form, "submit") || StructKeyExists(form, "export")>
<!--- This gets run both times --->
<cfquery datasource="#session.HousingDataSource#" name="query">
...
</cfquery>
</cfif>
<cfif StructKeyExists(form, "export")>
<cfset output = QueryToCSV(query, "studentFirst,studentLast,studentNumber,Detail1,itemDate")/>
<cffile action="write" file="#filename#" output="#output#"/>
</cfif>
...
或者您可以将其保存在会话中
<cfif StructKeyExists(form, "submit")>
<cfquery datasource="#session.HousingDataSource#" name="query">
...
</cfquery>
<cfset session.query = query/>
</cfif>
<cfif StructKeyExists(form, "export") && StructKeyExists(session, "query")>
<cfset output = QueryToCSV(session.query, "studentFirst,studentLast,studentNumber,Detail1,itemDate")/>
<cffile action="write" file="#filename#" output="#output#"/>
</cfif>
...
或者应用范围。感谢您的解释,会话看起来很酷,但无法正常工作。第一个例子完全有道理。