데이터베이스에 보유 된 json을 사용하여 jQuery DataTable을 포맷하려고합니다. 나는 응답에 숨겨진 필드에서 클라이언트에게 json을 전달합니다. 나는 다음 JS으로 데이터 테이블을 초기화하는 시도 :jQuery datatables json 초기화가 유효하지 않습니다. json
function initDataTables(){
$('.datatable').each(function(i) {
// Look for a hidden field containing the json to use when initialising the datatable
var hiddenfieldkey = $(this).attr('id') + 'jsoninit'
var hiddenfield = $('#' + hiddenfieldkey);
if (hiddenfield.length > 0) {
// We have found some 'special' json formatting, so use it
var jsoninittext = $(hiddenfield).val();
alert(jsoninittext);
var json = $.parseJSON(jsoninittext);
alert('point two');
$(this).dataTable(json);
}
else {
// Standard datatable formatting
$(this).dataTable({
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
});
}
});
initDataTableButtons();
}
을이 모두 다음과 같은 JSON과 잘 작동 (난 그냥이 DB에서 JSON 초기화 테이블을 작성하는 데 사용하는 SQL 복사 한 :
을update query set jQueryDatatableJSONInit=
'{
"iDisplayLength": 25
,"bJQueryUI": true
,"sPaginationType": "full_numbers"
,"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
,"aoColumnDefs": [
{ "bVisible": false, "aTargets": [ 0,3,4 ] }
,{ "sClass": "nowrap", "aTargets": [ 2 ] }
,{ "iDataSort": 0, "aTargets": [ 1 ] }
,{ "bSortable": false, "aTargets": [ 2 ] }
]
}'
where id ='336f7ea2-173a-4b8f-af30-e217d1e1c628'
그러나 내 JSON는 아래와 같은 기능을 포함 할 때, 문제가 발생한다 (이전과 동일하지만, 함수를 포함하는 fnRender 라인 포함) :는 함께 (
가update query set jQueryDatatableJSONInit=
'{
"iDisplayLength": 25
,"bJQueryUI": true
,"sPaginationType": "full_numbers"
,"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
,"aoColumnDefs": [
{ "fnRender": function (oObj) { return oObj.aData[2] +'' ''+ oObj.aData[3]+'' ''+ oObj.aData[4];},"aTargets": [ 2 ]}
,{ "bVisible": false, "aTargets": [ 0,3,4 ] }
,{ "sClass": "nowrap", "aTargets": [ 2 ] }
,{ "iDataSort": 0, "aTargets": [ 1 ] }
,{ "bSortable": false, "aTargets": [ 2 ] }
]
}'
where id ='336f7ea2-173a-4b8f-af30-e217d1e1c628'
다음 라인이 실패 잘못된 JSON 오류) :
var json = $.parseJSON(jsoninittext);
그래서 두 번째 경고 (점 두 사람은) 결코 실행, 그래서 그것은 데이터 테이블() 함수에 도착하지 않습니다. 마치 함수 정의 (중괄호 포함)가 json을 유효하지 않게 만드는 것처럼 보입니다. 아무도 내가 jatable datatables에 의해 예상대로 함수 정의를 포함 할 수 있도록 datatable 초기화 json을 포맷 할 수있는 방법을 알고 있지만 그 여전히 유효한 json (내가 사용할 수있는 일종의 정렬 이스케이프) 것입니다? 대단히 감사합니다.
정보를 주셔서 감사합니다. 문제를 해결했습니다 (아래 참조). – DEH