如何在Coldfusion中修改MySQL查询的结果(用HTML按钮/文本替换数据库整数)

时间:2012-07-18 15:10:57

标签: ajax arrays coldfusion

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

现在我正试图使用​​此snippet

让它工作
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,当我和#时39;在构建查询结果时,我用正确的语言用正确的文本替换状态编号。或者我在每一行都有一个Jquery Mobile编辑/删除控制组,我在数据库中没有。

问题
有没有办法将这个添加到从MySQL返回到Coldfusion的查询结果中=我怎样才能(a)通过循环遍历列并用一些文本(状态)替换数字来修改查询结果,以及(b)如何添加一个完整列到查询结果(编辑/删除)按钮,那么我可以将整个事情提供给AJAX响应吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

循环和更改的示例

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

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

答案 1 :(得分:1)

您可以遍历查询并使用QuerySetCell修改列的内容。

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

您可以使用QueryAddColumn向查询添加列。

<cfset QueryAddColumn(local.qryUsers, "yourNewColumnName", [1,2,3])>