首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Coldfusion中对HREF标记使用Onclick

在Coldfusion中对HREF标记使用Onclick
EN

Stack Overflow用户
提问于 2012-09-13 07:32:29
回答 1查看 3.2K关注 0票数 1

我想知道是否有人能告诉我这段代码出了什么问题,因为它不能工作,也不会给我任何错误。

使用这段代码,我试图访问一个组件,该组件在每次有人按下链接时都会更新DB表。

代码语言:javascript
复制
<cfajaxproxy bind="url:http://www.example.com/admin/CRM/linktracking.cfc" />
<cfscript>
    SSLtype = (CGI.HTTPS EQ 'off')?'http://':'https://';
</cfscript>

<cfset domainname = CGI.SERVER_NAME>
<cfset domainURL = SSLtype&CGI.SERVER_NAME&CGI.SCRIPT_NAME&'?'&CGI.QUERY_STRING>

    <script>    
        function insertTracking(href) {
        var instance = new ajaxjsclass();
        instance.setCallbackHandler();
        <cfoutput>
            instance.insertTrack(href,'#surveymain.contactid#','#domainname#','#domainURL#');
        </cfoutput>
        }       
    </script> 

这是我试图访问的组件。

代码语言:javascript
复制
<cfcomponent>

<cffunction name="insertTrack" access="remote" returntype="void" >
<cfargument name="clickedURL" required="yes">
<cfargument name="contactid" required="yes">
<cfargument name="domainName" required="yes">
<cfargument name="domainURL" required="yes">

<cfquery name="q_inserttrack" datasource="dpsigweb">
update survey_tracking
set surveystarted = <cfqueryparam value="#now()#" cfsqltype="CF_SQL_TIMESTAMP">
where contactid= '#contactid#'
</cfquery>


<cfif ARGUMENTS.contactid NEQ ''>
    <cfscript>
        additionalInfo = '<b>Clicked URL</b> - <i>#ARGUMENTS.clickedURL#</i><br><br><b>From Site</b> - <i>#ARGUMENTS.domainURL#</i>';
        gaCFC = CreateObject("component","mod_sigweb.components.guestaccount");
        gaCFC.AddCorrespondenceCurDoctorProcedureRemote(
            functionPassword = 'password',
            contactid = '#ARGUMENTS.contactid#',
            theMessage = additionalInfo,
            statustype = 'Survey Started',
            contactresult ='Survey Started'
            );
    </cfscript>
</cfif>

</cffunction>
</cfcomponent>  

这是我尝试访问该函数的位置:

代码语言:javascript
复制
<a href="http://dev.example.com/surveys/survey.cfm?id=#id#&contactid=#contactid#&doctorid=#doctorid#" onClick="insertTracking(this.href)" >

我怀疑我的<cfajaxproxy>标记可能有语法错误,但当我按下链接时,我没有得到任何错误。

我将我的cfajaxproxy改成这样

代码语言:javascript
复制
<cfajaxproxy cfc="linktracking" jsclassname="ajaxjsclass"  />

但是,这个函数似乎仍然不起作用。我甚至将组件和cfm文件移到同一文件夹中,但仍然不起作用。

编辑:我忘了提到,我正在发送电子邮件模板中的代码。我不知道这有没有关系。我创建了一个测试页面,并在本地测试,我的代码运行良好。如果因为这个原因我需要修改什么,请让我知道

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-14 04:04:54

找到解决方案。我将更新查询代码直接放在页面上,因此当用户按下链接并打开页面时,查询将从那里运行,而不是从链接运行。

上面的代码运行良好,我只是遇到了一些问题,因为我是通过电子邮件将页面发送给用户的。至少这是我所怀疑的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12397459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档