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を格納し、クエリ結果を作成するときに、ステータスを置き換えます。正しい言語の正しいテキストで番号を付けます。または、データベースにないJqueryMobile編集/削除コントロールグループをすべての行に持っています。

質問
これを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

クエリをループし、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])>
于 2012-07-18T16:07:57.933 に答える