Coldfusion Ajax timer probelms

So i needed to be able to check an inbox, and found this post:
http://www.experts-exchange.com/Software/Server_Software/Web_Servers/ColdFusion/Q_24346330.html?sfQueryTermInfo=1+10+8+ajax+coldfus+timer

My problem is that in firefox nothing happens & IE throws an error - ive since found out, im getting "Error thrown and not caught" at line 798 within cfajax.js

Current result can be seen at http://www.brandirectorv2.com/test.cfm
<!--- test.cfm --->
<cfajaxproxy cfc="includes.inbox" jsclassname="inboxProxy">
<head>
<script type="text/javascript">
var p = new inboxProxy();
var checkInbox = function(userid){
 p.setCallbackHandler(updateInbox);
 p.setErrorHandler(pErr);
 p.checkUserInbox(userid);
};
var updateInbox = function(result){
 document.getElementById("messagecount").innerHTML = " ("+result+")";
};
var pErr = function(code, message){
 alert("Error! Could not check your inbox...\nError Code: "+code+"\nError Message: "+message);
};
var initInboxCheck = function(userid){
 checkInbox(userid);
 setInterval(checkInbox(userid), 5000);
};
</script>
</head>
<cfset user_id="1">
<body onload="initInboxCheck(<cfoutput>#user_id#</cfoutput>);">
<div id="header"><a href="viewinbox.cfm">INBOX<span id="messagecount"></span></a></div>
</body>
</html>
 
<!--- includes/inbox.cfc --->
<component displayname="inbox" output="no">
<cffunction name="checkUserInbox" access="remote" returntype="numeric" output="no">
 <cfargument name="userID" type="numeric" required="yes">
 <cfset var queryInbox = "">
 <cfquery name="queryInbox" datasource="#request.dsn#" username="#request.uid#" password="#request.pwd#">
 SELECT * FROM tbl_messages WHERE msg_to = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.userID#">
 </cfquery>
 <cfreturn queryInbox.recordcount />
</cffunction>
</component>

Open in new window

j-tannerAsked:
Who is Participating?
 
azadisaryevConnect With a Mentor Commented:
the correct tag is <CFcomponent> - not <component>...

Azadi
0
 
azadisaryevConnect With a Mentor Commented:
yes, i see i had that typo in my code in the other question... sorry! my bad!

Azadi
0
 
azadisaryevConnect With a Mentor Commented:
i have posted an update in the other question, so hopefully no one else will fall into this... sorry you had to be the one!

Azadi
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
j-tannerAuthor Commented:
Hi,

Thankyou for the reply, that has stopped the cfajax error :), however the script is still failing...
Firebug shows:

useless setInterval call (missing quotes around argument?)
                                   setInterval(checkInbox(userid), 5000);

I researched setInterval & many say that whilst you can call a function, you cant pass a variable? if i put speech marks around it, it still stops & firebug says "userid is not defined"

Any thoughts?
0
 
j-tannerAuthor Commented:
Actually, i solved it :D... you may want to update code in he other post as well...

i replaced:

setInterval(checkInbox(userid), 5000);

with:

setInterval(function(){checkInbox(userid)}, 5000);
0
 
j-tannerAuthor Commented:
Thankyou for your help
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.