Coldfusion 8刷新表/页面基于cfquery.recordcount更改

时间:2014-05-20 14:04:24

标签: javascript jquery coldfusion

我在页面上有一个表,每次数据库添加一条记录时都应刷新(SQL Server 2005)。应刷新的页面称为status.cfm,jquery src(script)标记和jquery代码封装在标记中,jquery代码被假定为'触发一个名为chknew.cfm的单独CF页面(在同一个目录中)。我应该将JS / JQ分离到自己的文件中吗?我很擅长使用jQuery。我将我现在的(非工作)解决方案基于这个提问者的解决方案,删除了对DataTables库的引用:

Is there a way to 'listen' for a database event and update a page in real time?

这是我的非工作代码:

status.cfm :(调用页面?)

<html><head><title>Status List</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
  <script type="text/javascript" charset="utf-8">

  var originalNoRecs=0;
  var setChecker=setInterval(chkForNewRec,5000); //5 sec intervals

  function chkForNewRec(){
    var postData={
      noOfRecs:originalNoRecs
  };

    var ajaxResponse=$.ajax({
      type:"post",
      url:"./chknew.cfm",
      contentType:"application/json",
      data:JSON.stringify(postData)
    })

    ajaxResponse.then(
      function(apiResponse){
        var obj=jQuery.parseJSON(apiResponse);

        if(obj.isUpdateAvail=="Yes")
        {
          document.location.reload(true);
          alert('New Line Added!');
        }
      });
    }

 </script>
</head>

...后面是用数据库中的相关数据标记表的代码。我在JS中留下了警报线,这样我就可以测试代码是否正在触发,但事实并非如此。这是chknew.cfm(在同一目录中):

chknew.cfm :(处理程序?)

<cfset requestbody=tostring(gethttprequestdata().content)/>

<cfif isjson(requestbody)>

<cfset deserializedresult=deserializejson(requestbody)>
<cfset noOfRecs=deserializedresult.originalNoRecs>

<cfquery name="qCount" datasource="mydsn">SELECT COUNT(kid) AS total FROM kiosk</cfquery>

<cfif qCount.total NEQ variables.originalNoRecs>
    {"isUpdateAvail":"Yes","recordcount":<cfoutput>#qCount.total#</cfoutput>}
<cfelse>
    {"isUpdateAvail":"No"}
</cfif>

</cfif>

我也尝试过使用Firefox Dev Tools&gt; Debugger尝试逐步浏览JS / JQ,但无济于事,它只是一次性加载整个JavaScript块,而不是逐行完成,我可能设置错了。我非常精通CF,但只涉足JS而且没有jQuery的经验,但做了不少网上搜索,为什么这段代码不起作用,对这些代码没有任何乐趣。 / p> 如果它是显而易见的事情,我不会感到惊讶,我已经尝试了一些修改,但都无济于事。如果有人可以帮助我,我会非常感激,我有一位经理不理解为什么这会赢得工作&#34;而且我也很困惑。我的背景是网络管理,所以这有点在我的舒适区之外。提前感谢您对此问题的回答和见解。

编辑:我在FF中使用了Venkman,但它似乎一直在撞击我。据我所知,它停在&#34; Var ajaxResponse = $。ajax({...&#34; line。我已经提供了各个步骤的屏幕提示:

Venkman output, in order left to right, top to bottom.

因此,我的jQuery安装/版本可能出现问题?我是否需要将jQuery文件实际放在我的Web根目录上?我的印象是包括

0 个答案:

没有答案