Solved! Menampilkan Simbol dan Karakter Spesial di Datatables

Masalah ini sempat membuat pusing admin bolak-balik nyari tutorial sana-sini hampir gak ketemu, admin sedang membuat sebuah aplikasi dan di aplikasi tersebut menggunakan plugin DataTables Serverside untuk menampilkan data ke dalam tabel.

Ketika data akan di tampilkan kedalam tabel masalah muncul, data tidak tampil setelah di cari-cari ketemu permasalahannya data tidak tampil karena ada karakter simbol spesial di beberapa baris data, seperti “ç” , “ã”, “é” dan beberapa karakter simbol lainnya.

Sudah di utak-atik di bagian baris yang ini pakai function htmlentities, utf8_encode, htmlspecialchars, tapi belum juga berhasil, maklum masih newbie. 😀

echo json_encode(SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns ));

 

Setelah bertapa selama beberapa jam akhirnya ketemu juga, ternyata cukup mudah, solusinya ada di dalam file librari ssp.class.php kemudian cari function data_output  dan tambahkan fungsi php utf8_encode di baris yang ini :

$row[ $column['dt'] ] = $column['formatter']( $data[$i][ $column['db'] ], $data[$i] );

dan di baris yang ini :

$row[ $column['dt'] ] = $data[$i][ $columns[$j]['db'] ];

 

Sehingga menjadi seperti ini :

	static function data_output ( $columns, $data )
	{
		$out = array();

		for ( $i=0, $ien=count($data) ; $i<$ien ; $i++ ) {
			$row = array();

			for ( $j=0, $jen=count($columns) ; $j<$jen ; $j++ ) {
				$column = $columns[$j];

				// Is there a formatter?
				if ( isset( $column['formatter'] ) ) {
					$row[ $column['dt'] ] = utf8_encode($column['formatter']( $data[$i][ $column['db'] ], $data[$i] ));
				}
				else {
					$row[ $column['dt'] ] = utf8_encode($data[$i][ $columns[$j]['db'] ]);
				}
			}

			$out[] = $row;
		}

		return $out;
	}

 

Referensi yang lain bisa dilihat disini http://php.net/manual/fr/function.json-encode.php

Demikian artikel kali ini, semoga bisa membantu bagi sobat yang mengalami permasalahan yang sama.

Add a Comment

Your email address will not be published. Required fields are marked *