1
我想知道是否有人能告訴我這段代碼有什麼問題,因爲它不起作用,它也不會給我任何錯誤。在Coldfusion的HREF標籤上使用Onclick
通過此代碼,我試圖訪問每次有人按下鏈接時更新數據庫表的組件。
<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>
這是我試圖訪問的組件。
<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>
這是我想從進入功能:
<a href="http://dev.example.com/surveys/survey.cfm?id=#id#&contactid=#contactid#&doctorid=#doctorid#" onClick="insertTracking(this.href)" >
我懷疑我的<cfajaxproxy>
標籤可能有語法錯誤,但是當我按我沒有得到任何的聯繫錯誤。
更改我的cfajaxproxy
這個
<cfajaxproxy cfc="linktracking" jsclassname="ajaxjsclass" />
,但仍是功能似乎並沒有工作。我甚至將組件和cfm文件移動到同一個文件夾中,但它仍然不起作用。
編輯: 我忘了提及我在電子郵件模板中發送此代碼。我不知道這是否有任何問題。我創建了一個測試頁,我在本地測試,我的代碼工作正常。如果有什麼我需要改變,因爲請讓我知道
你應該在你的函數中實現var作用域。也可以在SQL的WHERE部分使用cfqueryparam。 – duncan
我使用了cfqueryparam,但爲了排除可能的錯誤,我把它關閉了。我會研究var範圍,謝謝 – Geo
你看到ajax調用發生了嗎?在Firefox中使用FireBug或在Chrome中使用JavaScript控制檯,您至少應該看看是否有請求。 –