问题:是否可以通过<a>
代码触发数据库查询,并仍然将访问者发送到<a>
的网址?
我的第一个想法是拥有一个每个链接所在的页面,该页面将保存链接的URL,但在将用户重定向到该链接之前,url运行一个查询,将url推送到数据库中的其他Session信息和查询成功后,将该人员发送到URL。
是否有更好的方法可以使用AJAX或JQuery完成此任务?
该页面是用ColdFusion编写的。
答案 0 :(得分:0)
您可以使用所有链接都经过的.cfm文件,在该cfm文件中,您可以将该点击记录或记录到数据库中。 Coldfusionbloggers.org做了类似的事情。你在想什么是好的。我不会使用ajax,我不会这么想。
答案 1 :(得分:0)
您可以在OnRequestStart()中为application.cfc执行此操作 - 或者,如果您仍在使用Application.cfm,请在文件的早期,以便尽可能多地使用它...
您可以在一个表中执行此操作并将数据存储为JSONSerialization。我
<cfquery>
INSERT INTO SavedInfo(userID,page_url,qs,scopedump)
VALUES(<cfqueryparam cfsqltype="cf_sql_integer" value="#session.userID#">,
<cfqueryparam cfsqltype="cf_sql_nvarchar" value="#cgi.script_name#">,
<cfqueryparam cfsqltype="cf_sql_nvarchar" value="#cgi.query_string#">,
<cfqueryparam cfsqltype="cf_sql_nvarchar" value="#SerializeJSON(session)#">)
</cfquery>
注意:
然后,在显示页面上,您可以列出
<cfquery name="GetList">
select UserID,page_url,qs
from SavedInfo
order by dumpID desc
</cfquery>
在这种情况下,通常不仅仅选择*会很好,但在这里它特别好。您可能很快就会输出数千行,并且您不需要每行都有scopedump的大量数据。
将结果链接到显示scopedump并使用
的页面<cfquery name="GetDump">
select *
from SavedInfo
where DumpID = <cfqueryparam type="cf_sql_integer" value="#url.dumpID#">
</cfquery>
<cfoutput query="GetDump">#Userid#, #page_url#?#qs#, etc...
<cfset as_cf = DeSerializeJSON(scopedump)>
<cfdump var="#as_cf#">
</cfoutput>