Использование Onclick для тега HREF в Coldfusion

Мне было интересно, если кто-то может сказать мне, что не так с этим кодом, потому что он не работает, и он также не дает мне никаких ошибок.

С помощью этого кода я пытаюсь получить доступ к компоненту, который обновляет таблицу БД каждый раз, когда кто-то нажимает на ссылку.

<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 в одну и ту же папку, но она все равно не работает.

Изменить: я забыл упомянуть, что я отправляю этот код в шаблоне электронной почты. Я не знаю, имеет ли это какое-либо значение. Я создал тестовую страницу, которую я тестирую локально, и мой код работает просто отлично. Если есть что-то, что мне нужно изменить, пожалуйста, дайте мне знать

1 ответ

Решение

Решение найдено. Я разместил код запроса на обновление непосредственно на странице, чтобы, когда пользователь нажимает на ссылку и открывает страницу, запрос запускается оттуда вместо ссылки.

Приведенный выше код работает нормально, у меня просто были проблемы с ним, потому что я отправлял страницу по электронной почте пользователю. По крайней мере, это то, что я подозреваю.

Другие вопросы по тегам