1

我正在使用数据表和 Jquery Mobile(服务器 Coldfusion8,MySQL 5.0.88)来显示表格数据。虽然这很好用,但我正在尝试将 AJAX 集成到表中,因此每当用户页面或过滤器时,都会再次查询并更新数据库。

现在我正在尝试使用这个代码片段让它工作

var userTable = $('#users).dataTable({
    "sAjaxSource": "path/to/handler.cfc?method=GetUsers",
    "aoColumns": [
        { "mDataProp": "id" , "sTitle": "ID"},
        { "mDataProp": "name" , "sTitle": "Name"},
        { "mDataProp": "surname" , "sTitle": "Surname"},
        { "mDataProp": "email" , "sTitle": "Email Address"}
      ]
    });

在 CF 内部:

<cffunction name="GetUsers" access="remote" output="false" returntype="any" returnformat="json"> 
    <cfquery name="local.qryUsers" datasource="dsn">
      SELECT id, name, surname, email FROM tblUsers
    </cfquery>

    <cfscript>
      local.strData = StructNew();
      local.strData['aaData'] = QueryToArray(local.qryCandidates);
      return local.strData;
     </cfscript>

</cffunction>

我的问题是我需要修改查询中的一些数据,例如我正在存储一个名为status的列,其值为 1、2、3、4、5,当我构建查询结果时,我正在替换状态用正确的语言和正确的文字编号。或者我在每一行都有一个 Jquery Mobile 编辑/删除控制组,我在数据库中没有。

问题
有没有办法将此添加到从 MySQL 返回到 Coldfusion 的查询结果中 = 我如何 (a) 通过循环列并用一些文本 (状态) 替换数字来修改查询结果和 (b) 我怎么能向查询结果(编辑/删除)按钮添加一个完整的列,这样我就可以将整个内容输入 AJAX 响应?

感谢帮助!

4

2 回答 2

2

循环和更改的示例

<cfloop query="MyQuery">
    <cfscript>
        variables.myNewValue = "aaa #MyColumn#";
        QuerySetCell(MyQuery, "MyColumn", variables.myNewValue, CurrentRow);
    </cfscript>
</cfloop>  

至于添加列 - 尝试QueryAddColumn()函数

于 2012-07-18T16:12:03.520 回答
1

You can loop over the query and use QuerySetCell to modify contents of a column.

<cfloop query="local.qryUsers">
  <cfset QuerySetCell(local.qryUsers, "status", "your new value", local.qryUsers.currentRow)>
</cfloop>

You can use QueryAddColumn to add a column to a query.

<cfset QueryAddColumn(local.qryUsers, "yourNewColumnName", [1,2,3])>
于 2012-07-18T16:07:57.933 回答