2017-12-09 13 views
0

은 모든 행에서 컬럼의 모든 값은 소수점 값이며, 또한 다음과 같은 진수 값 앞에 ""기호가 포함PHP-jQuery의 DataTable에서 열 합계 (모든 값은 십진수 값)를 표시하는 방법은 무엇입니까? 내 PHP - jQuery를 DataTable의에서

+---------+ 
| Column | 
+---------+ 
| ₹ 1.20 | 
+---------+ 
| ₹ 3.42 | 
+---------+ 
| ₹ 9.07 | 
+---------+ 

난의 합계를 표시 할을 다음과 같은 테이블 바닥 글에있는 모든 열의 소수 값은 :

+----------------+ 
|  Column  | 
+----------------+ 
|  ₹ 1.20  | 
+----------------+ 
|  ₹ 3.42  | 
+----------------+ 
|  ₹ 9.07  | 
+----------------+ 
| ₹ 13.69 (Total)| 
+----------------+ 

나는 "footerCallback"기능을 사용하여 위와 같이 출력을 시도했지만 실패했습니다

"footerCallback": function (row, data, start, end, display) { 
    var api = this.api(), data; 

    // Remove the formatting to get integer data for summation 
    var intVal = function (i) { 
     return typeof i === 'string' ? 
     i.replace(/[\$,₹]/g, '')*1 : 
     typeof i === 'string' ? 
     i : 0.00; 
    }; 

    // Total over this page 
    pageTotal = api 
    .column(4, { page: 'current'}) 
    .data() 
    .reduce(function (a, b) { 
     return intVal(a) + intVal(b); 
    }, 0); 

    // Update footer 
    $(api.column(4).footer()).html(
     '₹ '+pageTotal +' (Total)' 
    ); 
}, 

그것은 아래의 테이블 바닥 글에 같은 결과 :

₹ NaN (Total) 

도와주세요!

+1

이렇게하면 숫자가 아닌 숫자로 저장되도록 가르쳐줍니다. –

+0

왜 이것을 PHP로 테제합니까? – Andreas

+1

왜 지구상에이 질문을 downvote ...? 사람들은 실제로 자신의 불만을 설명하는 법을 배워야하며, 질문자는 downvotes가 설명되지 않으면 더 나은 일을 할 수있는 기회가 없습니다. – davidkonrad

답변

0

귀하의 INTVAL 기능 검사 값이 문자열 인하고 있는지 숫자로 변환하지만 이미있는 경우 숫자가 그때는하지만 정수 작업 진수되지 않습니다 0

유를 반환하는 경우 는 부동 소수점 형이므로 소수점을 반환하기 때문에 통화 추가에 적합하지 않습니다.

전체 INTVAL 기능을 삭제하고이 같은 교체, 그것은 않는 모든 숫자 또는 소수점하지 않은 것을 제거입니다 :

var floatVal = function (i) { 
    return i.replace(/[^\d\.]/g, ''); 
}; 

이 그런 다음 pageTotal 기능이 라인 변경은 return intVal(a) + intVal(b); 여기에 숫자를 함께 추가하는 대신 부동 번호로 추가합니다.

return parseFloat(floatVal(a)) + parseFloat(floatVal(b)); 
+0

작동하지 않습니다. ! Datatable이 제대로로드되지 않았습니다! –