我使用数据表和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响应吗?
感谢您的帮助!
答案 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])>