2017-11-28 15 views
0

私はページング、並べ替え、並べ替えとデータテーブルを検索しようとしていましたが、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'); 
       }, 
      }); 
     }); 
    } 
+0

デバッグのために何をしましたか?何かエラーがありますか?異なる点でコードと変数を評価する必要があります。何が間違っているかをどのように知っていますか大量のコードを投げたり、誰に何が起こっているかを知ってもらうことはできません。 –

+0

@BrianGottierエラーはありません。私が並べ替え、ページング、検索を使用するときは、コントローラで同じプロセスを実行するだけです。私はコードを修正しないようにするための助言が必要だと言った。私はちょうど今まで何をしているかを共有するために自分のコードを投稿します。私はすでにAPIからjsonデータを取得していますが、コントローラーではまだページングなどの処理をしていません。 –

答えて

0

ビューでGenaraly私のデータテーブルAjaxのサーバーサイドスクリプトで、データセットは、いくつかのパラメータをソースに送信する(すなわち、あなたのAjax URL)をリクエストすることもできます(ネットワークタブでCrtl + Shift + )をチェックすることもできます。

あなたのサーバースクリプトであるJSPについてはわかりませんが、PHPサーバー側コードの場合は Check thisです。

まず、リクエストのすべての値を出力します。

31、これはpaging.Datatableであり、次の/ prev /ページ番号の任意のページ番号をクリックすると、クエリの制限値を自動的に送信します。

リクエストで余分なパラメータを渡すことによって、複数のテーブル、異なるカラム、および特別な条件に対して変更を加えました。

あなたは考えを得ることを願っています。

+0

アドバイスありがとう!やってみます –

関連する問題