私はページング、並べ替え、並べ替えとデータテーブルを検索しようとしていましたが、jsonレスポンスAPI 。どのように並べ替え、ページング、注文、APIのdatatable読み込みjsonデータで検索することができますか? APIのものからのこの種のjsonデータに新しい。誰かが私にcodeigniterと参照でそれを行う正しいことを教えてくれることを願っています。ありがとう!codeigniterのdatatableを使用してAPIサーバーからjsonデータレスポンスをソート、ページング、並べ替え、検索する
これは今まで何をしています。私はすでにjsonデータをapiからテーブルビューに取得していますが、ページングなどを使用するときは、同じプロセスを実行します。ページングなどでjsonデータを処理する条件がないことがわかっているからです。アドバイスをありがとう!
API
function get_filter_order_report($idseri,$idstatus,$orderdate,$nohal,$halaman)
{
$APIId = '*******';
$APIKey = '*******';
$url = '*******';
$RequestUrl = urlencode($url);
$RequestUrl = strtolower($RequestUrl);
$requestHttpMethod = 'get';
$requestHttpMethod = strtoupper($requestHttpMethod);
$RequestBodyBase64 = base64_encode(md5('""',true));
$RequestTimeStamp = time();
$Nonce = bin2hex(openssl_random_pseudo_bytes(10));
$SignatureRawData = $APIId.''.$requestHttpMethod.''.$RequestUrl.''.$RequestTimeStamp.''.$Nonce.''.$RequestBodyBase64;
$SignatureBase64 = base64_encode(hash_hmac('sha256', $SignatureRawData, $APIKey, 'true'));
$dataSignature = $APIId.':'.$SignatureBase64.':'.$Nonce.':'.$RequestTimeStamp;
$AuthString = base64_encode($dataSignature);
$data = new stdClass;
$proxy = '********';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization : amx '.$AuthString)
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$result = curl_exec($ch);
curl_close($ch);
$var = json_decode($result);
echo json_encode($var->Records);
}
と私のコントローラからのGET JSONデータは、今ちょうど検索と
function show_order_report()
{
if($_POST){
$arr = array('IdSeri' => $this->input->post('seriid'),
'Status' => $this->input->post('statid'),
'TglPemesanan' => $this->input->post('orderdate')
);
$halaman = 10;
$nohal = 1;
$idseri = $arr['IdSeri'];
$idstatus = $arr['Status'];
$orderdate = $arr['TglPemesanan'];
echo $this->Pemesanan_model->get_filter_order_report($idseri,$idstatus,$orderdate,$nohal,$halaman);
}else{
echo '<script type="text/javascript">parent.content.location = "'.base_url().'default"</script>';
}
}
を注文し、データテーブルサーバー側のページングのための条件がないデータを取得しソートするために、このモデルでは、私の関数であります
これは
function filterOrder(){
var token = document.getElementById('token').value;
$(document).ready(function() {
$("div#form-wrap").show();
var postData = {
<?= $this->security->get_csrf_token_name() ?> : token,
seriid: $('#seriid').val(),
statid: $('#statid').val(),
orderdate: $('#orderdate').val()
};
var code = {<?= $this->security->get_csrf_token_name() ?> : token,};
var tglorder = formatDate('TglPemesanan');
var table = $('#orders').DataTable({
"responsive" : true,
"processing" : true,
"serverSide" : true,
"destroy": true,
"paging": true,
"searching": true,
"ajax" : {
url : "<?=base_url();?>SBNReport.jsp/show_order_report",
type: "post",
data: postData,
dataSrc: ''
},
"columns": [
{ "data": "NamaInvestor" },
{ "data": "KodePemesanan" },
{ "data": "Seri" },
{ "data": "Sid" },
{ "data": "KodeBilling" },
{ "data": "Nominal" },
{ "data": "Status" },
{ "data": "TglPemesanan" },
{ "data": "NTPN" },
{
sortable: false,
"render": function (data, type, full, meta) {
var buttonID = full.KodePemesanan;
return '<a class="btn btn-sm btn-primary btn-sm" href="javascript:getTransaction(\''+buttonID+'\')">Detail</a>';
}
},
],
//Set column definition initialisation properties.
"columnDefs": [
{
"targets": [ 9 ], //last column
"orderable": false, //set not orderable
"searchable" : false,
},
{
"targets" : 7,
render : function(data){
//Here you should call the date format function:
return formatDate(data);
}
}
],
"language": {
"lengthMenu": "<?= $this->lang->line('dt_show') ?> _MENU_ <?= $this->lang->line('dt_record') ?> <?= $this->lang->line('dt_per_page') ?>",
"zeroRecords": "<?= $this->lang->line('dt_empty') ?>",
"info": "<?= $this->lang->line('dt_show') ?> <?= $this->lang->line('dt_page') ?> _PAGE_ <?= $this->lang->line('dt_of') ?> _PAGES_ <?= $this->lang->line('dt_page') ?>",
"infoEmpty": "<?= $this->lang->line('dt_empty') ?>",
"infoFiltered": "<?= $this->lang->line('dt_filtered') ?> <?= $this->lang->line('dt_of') ?> _MAX_ <?= $this->lang->line('dt_record') ?>)",
"search": "<?= $this->lang->line('dt_search') ?>",
"processing": "<?= $this->lang->line('dt_processsing') ?>",
},
"initComplete": function(oSettings) {
parent.setIframeHeight('content');
},
"drawCallback": function(oSettings) {
parent.setIframeHeight('content');
},
});
});
}
デバッグのために何をしましたか?何かエラーがありますか?異なる点でコードと変数を評価する必要があります。何が間違っているかをどのように知っていますか大量のコードを投げたり、誰に何が起こっているかを知ってもらうことはできません。 –
@BrianGottierエラーはありません。私が並べ替え、ページング、検索を使用するときは、コントローラで同じプロセスを実行するだけです。私はコードを修正しないようにするための助言が必要だと言った。私はちょうど今まで何をしているかを共有するために自分のコードを投稿します。私はすでにAPIからjsonデータを取得していますが、コントローラーではまだページングなどの処理をしていません。 –