2017-10-20 26 views
0

私はcoldFusion 2016を使用しています.JsonデータをJqueryデータテーブルに配置するときに問題が発生します。データテーブルには処理メッセージのみが表示されます。 JSONの結果にエラーはありませんが、私は何が問題なのか分かりません。ここでJSONデータをColdFusionのJqueryデータテーブルに埋め込む際の問題

は、ここに私のDataTable実装

<head> 
 
<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
 
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script> 
 
<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet"> 
 

 
<script type="text/javascript"> 
 
var table = ''; 
 
$(document).ready(function() { 
 
    table = $('#example').DataTable({ 
 
\t  "bProcessing": true, 
 
     "bServerSide": true, 
 
\t \t "ajax": "uploadProcess.cfc?method=getDetails&partyId=100004", 
 
\t \t "sPaginationType": "full_numbers", 
 
\t \t "oLanguage": { 
 
\t \t \t \t "sProcessing": "Wait please...", 
 
\t \t \t \t "sZeroRecords": "No records found.", 
 
\t \t \t \t "sInfo":   "Users from _START_ to _END_ of _TOTAL_ total", 
 
\t \t \t  "sInfoEmpty": "Users from 0 to 0 of 0 total" 
 
\t \t \t \t }, 
 
\t \t "aoColumns": [ 
 
         { "data": "ID" }, 
 
         { "data": "ORG_NAME" }, 
 
         { "data": "TYPE" }, 
 
         { "data": "PATH" }, 
 
         { "data": "URL" }, 
 
         { "data": "DELETE" } 
 
        ] 
 
    }); 
 
}); 
 
</script> 
 
</head> 
 
<body> 
 
<div id="dataDiv"> 
 
<table id="example" class="display" cellspacing="0" width="100%"> 
 
     <thead> 
 
      <tr> 
 
       <th>Id</th> 
 
       <th>File Name</th> 
 
       <th>Type</th> 
 
       <th>Path</th> 
 
\t \t \t \t   <th>Preview</th> 
 
\t \t \t \t   <th>Delete</th> 
 
      </tr> 
 
     </thead> 
 
    </table> 
 
</div> 
 
</body>

は私uploadProcess.cfc

<cfcomponent> 
 
<cffunction name="getDetails" access="remote" returnFormat="json"> 
 
\t <cfargument name="partyId" type="string" required="yes"> 
 
\t <cfparam name="arguments.iDisplayStart" default="0"> 
 
\t <cfparam name="arguments.iDisplayLength" default="10"> 
 
\t <cfparam name="arguments.iSortCol_0" default="UploadFileID"> 
 
\t <cfparam name="arguments.sSortDir_0" default="ASC"> 
 
\t <cfparam name="arguments.sEcho" default="1"> 
 
\t 
 
\t <cfstoredproc procedure="get_upload_file_details" datasource="standout"> 
 
\t <cfprocparam value="#partyId#" cfsqltype="CF_SQL_INT"> 
 
\t <cfprocparam value="#arguments.iDisplayStart#" cfsqltype="CF_SQL_INT"> 
 
\t <cfprocparam value="#arguments.iDisplayLength#" cfsqltype="CF_SQL_INT"> 
 
\t <cfprocparam value="#arguments.iSortCol_0#" cfsqltype="CF_SQL_VARCHAR"> 
 
\t <cfprocparam value="#arguments.sSortDir_0#" cfsqltype="CF_SQL_VARCHAR"> 
 
\t <cfprocresult name="getUploadDtls"> 
 
\t </cfstoredproc> 
 

 
\t <cfset userArray = arrayNew(1)> \t 
 
\t 
 
\t <cfloop query="getUploadDtls"> 
 
\t <cfif UserSessionID eq ""> 
 
    <cfset deleteLink = "<span class='delete-link link'>Delete</span>" /> 
 
    <cfelse> 
 
    <cfset deleteLink = ""> 
 
    </cfif> 
 
\t \t <cfset userStruct = {}> 
 
\t \t <cfset userStruct.ID = UploadFileID> 
 
\t \t <cfset userStruct.ORG_NAME = OriginalFileName> 
 
\t \t <cfset userStruct.GEN_NAME = SystemFileName> 
 
\t \t <cfset userStruct.TYPE = DocumentName> 
 
\t \t <cfset userStruct.PATH = FilePath> 
 
\t \t <cfset userStruct.URL = "<a href='renderpdf.cfm?path=#FilePath#&name=#OriginalFileName#' target='_blank'>Preview</a>"> 
 
\t \t <cfset userStruct.DELETE = deleteLink> \t \t 
 
\t \t <cfset arrayAppend(userArray, userStruct) > 
 
\t </cfloop> 
 
\t <cfif getUploadDtls.RecordCount GT 0> 
 
    <cfset firstRow = queryGetRow(getUploadDtls,1)> 
 
\t <cfset record_count = firstRow.record_count> 
 
\t <cfelse> 
 
\t <cfset record_count = 0> 
 
    </cfif> 
 
\t <cfset returnStruct = {}> 
 
\t <cfset returnStruct['iTotalRecords'] = record_count> 
 
\t <cfset returnStruct['iTotalDisplayRecords'] = record_count> 
 
\t <cfset returnStruct['sEcho'] = arguments.sEcho> 
 
\t <cfset returnStruct['aaData'] = userArray> 
 
\t <cfset resultsJSON = SerializeJSON(returnStruct)> 
 
\t <cfreturn resultsJSON> 
 
</cffunction> 
 
</cfcomponent>

JSON Rであります私の機能から戻ってくるエスチュールを以下に示します。

{""aaData"":[{""GEN_NAME"":""sample_489.pdf"",""PATH"":""C://Standout/web_uploads/100004/Medical Reports/sample_489.pdf"",""DELETE"":"""",""ORG_NAME"":""sample.pdf"",""ID"":77,""TYPE"":""Medical Report"",""URL"":""<a href='renderpdf.cfm?path=C://Standout/web_uploads/100004/Medical Reports/sample_489.pdf&name=sample.pdf' target='_blank'>Preview</a>""}],""iTotalDisplayRecords"":1,""iTotalRecords"":1,""sEcho"":1}"

私は問題が何であるかを把握することはできません誰かが助けることができますか?

+0

JSONの返品が無効です。あなたのJSONは{ \t "aaData" のようにする必要がありhttps://jsonlint.comであなたのJSONを検証してみてください:[{ \t \t "GEN_NAME": "sample_489.pdf"、 \t \t "PATH":「C:/ /傑出した/ web_uploads/100004 /メディカルレポート/ sample_489.pdf」、 \t \t "DELETE": ""、 \t \t "ORG_NAME": "sample.pdfが"、 \t \t "ID":77、 \t \t "TYPE": "Medical Report"、 \t \t "URL": "Preview" \t}]、 \t "iTotalDisplayRecords":1、 \t "iTotalRecords":1、 \t "sEcho":1 } –

+0

Iはすでにたreturnformat =私のcffunctionにおける "JSON"、そう前方に達しJSON与え-endは指定したとおりに正しい形式になります。 –

答えて

0

まず、構造体をラップするために使用する中括弧を削除します。
構造体を渡すだけで、SerializeJson()はすでにうまく動作しています。

JSONが有効でないために、おそらくエラーが発生しているか、データテーブルが正しく設定されていないようです。

正直言って、あなたのテーブルにcfloopを充填することをお勧めします。

<cfloop query="myQuery"> 
    <tr> 
     <td> 
      #myQuery.someData# 
     </td> 
     ... 
    </tr> 
</cfloop> 

ページの読み込み時にデータを読み込むと、このソリューションも同様に機能する場合があります。
データ可能APIは、時にはimoされることがあります。

関連する問題