2016-11-04 5 views
0

最新のバージョンでjqGridを使用するプロジェクトで作業しています。jqGrid dataInitがトリガーしない

このプロジェクトはPHP(5.6)で、JSONを使用してjqGridフレームワークに "翻訳/会話"し、colModelパラメータはすべてPHP配列内にあります。 それは完璧に動作しますが、私は実際のプロジェクトのコードを使用してcolModel "criacao"のdataInitをトリガすることができません。

public function laudos($section) 
    { 
     $table = 'laudos'; 
     $fields = array('id','laudo','nome_fantasia','cliente','cadastro_id','email','senha','exame','descricao','criacao','exclusao','arquivo'); 
     $tabela = array(
      'colNames' => array('ID','Laudo','Clínica','Nome','Cadastro','Email','Senha','Exame','Descrição','Criação','Exclusão','Arquivo'), 
      'colModel' => array(
       array('name'=>'id','hidden'=>true,'search'=>true,'key'=>true), 
       array('name'=>'laudo','index'=>'laudo','width'=>70,'align'=>'center','search'=>true,'editable'=>true,'editrules'=>array('required'=>true),'sorttype'=>'integer','searchoptions'=>array('sopt'=>'[eq,cn]', 'clearSearch'=>false)), 
       array('name'=>'nome_fantasia','search'=>true,'width'=>170,'align'=>'center','editable'=>false,'sorttype'=>'text','searchoptions'=>array('sopt'=>'[eq,cn]','clearSearch'=>false),'editrules'=>array('required'=>true)), 
       array('name'=>'cliente','search'=>true,'width'=>170,'align'=>'center','editable'=>false,'sorttype'=>'text','searchoptions'=>array('sopt'=>'[eq,cn]','clearSearch'=>false),'editrules'=>array('required'=>true),), 
       array('name'=>'cadastro_id','search'=>true,'hidden'=>true, 
        'editable'=>true,'edittype'=>'text','searchoptions'=>array('sopt'=>'[eq,cn]','clearSearch'=>false),'editrules'=>array('edithidden'=>true,'required'=>true), 
        'editoptions'=>array('dataInit'=>'[]')), 
       array('name'=>'email','search'=>true,'hidden'=>true,'editable'=>true,'sorttype'=>'email','searchoptions'=>array('sopt'=>'[eq,cn]','clearSearch'=>false),'editrules'=>array('edithidden'=>true)), 
       array('name'=>'senha','search'=>true,'hidden'=>true,'editable'=>true,'editrules'=>array('edithidden'=>true)), 
       array('name'=>'exame','search'=>true,'width'=>50,'align'=>'center','editable'=>true,'sorttype'=>'text','searchoptions'=>array('sopt'=>'[eq,cn]','clearSearch'=>false),'formatter'=>'select','edittype'=>'select', 
        'editoptions'=>array('value'=>array('Biópsia'=>'Biópsia','Necrópsia'=>'Necrópsia','Citologia'=>'Citologia')) 
       ), 
       array('name'=>'descricao','search'=>true,'width'=>200,'align'=>'center','editable'=>true,'sorttype'=>'text','searchoptions'=>array('sopt'=>'[eq,cn]','clearSearch'=>false)), 
       array('name'=>'criacao','search'=>true,'width'=>70,'formatter'=>'date','fixed'=>true,'resizable'=>false,'align'=>'center','sorttype'=>'date','searchoptions'=>array('sopt'=>'[eq,cn]','clearSearch'=>false), 'editoptions'=>array('dataInit'=>'function (elem) { $(elem).datepicker();')), 
       array('name'=>'exclusao','search'=>true,'width'=>70,'formatter'=>'date','sorttype'=>'date','fixed'=>true,'resizable'=>false,'editable'=>true,'searchoptions'=>array('sopt'=>'[eq,cn]','clearSearch'=>false),'align'=>'center'), 
       array('name'=>'arquivo','search'=>false,'width'=>60,'formatter'=>'arquivo','classes'=>'tabela_laudo_arquivo','editable'=>true,'searchoptions'=>array('sopt'=>false,'clearSearch'=>false)) 
      ), 
      'sortname' => 'id', 
      'caption' => 'Registros de Laudos Cadastrados', 
      ); 

これは、フレームワークをjqgridするresponceを返すPHP関数です:

private function tabelas($table, $fields, $where = '1 = 1') 
    { 
     $page = isset($_REQUEST['page']) ? $_REQUEST['page'] : 1; // get the requested page 
     $limit = isset($_REQUEST['rows']) ? $_REQUEST['rows'] : 99999; // get how many rows we want to have into the grid 
     $sidx = isset($_REQUEST['sidx']) ? $_REQUEST['sidx'] : 'id'; // get index row - i.e. user click to sort 
     $sord = isset($_REQUEST['sord']) ? $_REQUEST['sord'] : 'desc'; // get the direction 

     if(!$sidx) $sidx =1; 

     $count = $this->db->get_var("SELECT COUNT(*) AS count FROM $table WHERE $where"); 
     if($count > 0) 
     { 
      $total_pages = ceil($count/$limit); 
     } 
     else 
     { 
      $total_pages = 0; 
     } 

     if ($page > $total_pages) $page = $total_pages; 
     $start = $limit * $page - $limit; // do not put $limit*($page - 1)  
     $sql = "SELECT " . implode(',',$fields) . " FROM $table WHERE $where ORDER BY $sidx $sord LIMIT $start, $limit"; 
     $result = $this->db->get_results($sql); 
     $responce->page = $page; 
     $responce->total = $total_pages; 
     $responce->records = $count; 
     $i = 0; 
     foreach($result as $row) 
     { 
      $responce->rows[$i]['id'] = $row->id; 
      foreach($fields as $field) 
      { 
       $responce->rows[$i]['cell'][] = $row->$field; 
      } 
      $i++; 
     } 
     return $responce; 

    } 
+0

jqGridは** JavaScript **で書かれています。 PHPコードを生成する結果のJavaScriptコードを送信してください。 – Oleg

+0

オレグ、私はそれを知っているが、これは私を夢中にさせている! colModelはPHPファイルを介して設定され、このPHPファイルはJSON形式でエンコードされた$ responce変数を返すので、結果のコードを表示する方法はわかりません。 –

+0

ウェブブラウザでコンテキストメニューを使用して、ページのソースコードを確認するだけで済みます。 Thコードには完全なHTMLコードとJavaScriptコードが含まれます。 – Oleg

答えて

0

$ .extendを使用して、私のjQGridスクリプトでは、仕事をしてくれました。 質問は既に回答済みですhere

関連する問題