jQuery рдХреЗ EasyUI Datagrid + Yii рдлреНрд░реЗрдорд╡рд░реНрдХ

рдореБрдЭреЗ рдПрдХ рдЯреЗрдмрд▓реЗрдЯ рдЪрд╛рд╣рд┐рдП! рдореИрдВ рдЫрдБрдЯрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдмрд▓, рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреГрд╖реНрдард╛рдВрдХрди рдФрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЗ рд╕рдорд╛рди рдПрдХ рд╢реИрд▓реА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рддрд╛рдХрд┐ рдЖрдк рдЗрд╕рдореЗрдВ рдХрдИ, рдХрдИ рдХреЙрд▓рдо рдЬреЛрдбрд╝ рд╕рдХреЗрдВред

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдХреНрдпрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

1. Yii рдлреНрд░реЗрдорд╡рд░реНрдХ ( http://www.yiiframework.com/ )
рдЖрдкрдХреЛ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓реЙрдЬрд┐рдХ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб, рдЗрдВрд╕реНрдЯреЙрд▓, рд░рди, рдбреАрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

2. рдЬрд┐рдЬреАрдП рдИрдЬрд╝реАрдпреВрдЖрдИ ( http://www.jeasyui.com/ )
рдЖрдкрдХреЛ Yii рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд╕рд╛рдзрди рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб, рдЕрдирдЬрд╝рд┐рдк рдФрд░ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

/easyui/themes/default/easyui.css
/easyui/themes/icon.css
/easyui/jquery-1.8.0.min.js
/easyui/jquery.easyui.min.js



рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?



1. рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдкреНрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдЕрдЧреНрд░реЗрд╖рдг рд▓реЗрдЦрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдПрдХ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

public function actionGetData() { $model = new DislocOrders(); $rs = $model->findAll(); $items = array(); //     foreach( $rs as $row ) { //      ,     $items[] = array( 'order_id' => $row->id, 'vagon_no' => $row->vagon_no, 'sp_name' => $row->sp_name, 'fp_name' => $row->fp_name, 'op_name' => $row->op_name, 'op_st_name' => $row->op_st_name, 'op_date' => $row->op_date, 'days_wm' => $row->days_wm, ); } header('Content-Type: application/json'); echo CJSON::encode( array( total => count($items), //  -  rows => $items, //  ) ); Yii::app()->end(); } 


2. рдЙрд╕реА рд▓реЗрдмрд▓ рдХреЗ html рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдХрд░ рджреГрд╢реНрдп рдмрджрд▓реЗрдВ

рдПрдХ рдкреГрд╖реНрда рдкрд░ рдЧреНрд░рд┐рдб рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: рдЗрд╕реЗ html рдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░реЗрдВ рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


 <table class="easyui-datagrid" title="Basic DataGrid" style="width:auto;height:500px" data-options="singleSelect:true,collapsible:true,url:'<?php echo Yii::app()->createUrl("dislocOrders/getData"); ?>'"> <thead> <tr> <th data-options="field:'vagon_no',width:80">тДЦ </th> <th data-options="field:'sp_name',width:100">. </th> <th data-options="field:'fp_name',width:80,align:'right'">. </th> <th data-options="field:'op_st_name',width:60,align:'center'">. </th> <th data-options="field:'op_name',width:80,align:'right'"></th> <th data-options="field:'op_date',width:250"> </th> <th data-options="field:'days_wm',width:60,align:'center'">  -</th> </tr> </thead> </table> 


3. рд╣рдо рдкреГрд╖реНрда рдХреЛ рд░реАрдлреНрд░реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдЧреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдЪреНрдЫреЗ рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЧреНрд░рд┐рдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд╣рдЬ рд╣реИрдВ рдФрд░ рдЖрдЧреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред




4. рдкреЗрдЬреЗрд╢рди рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЧреНрд░рд┐рдб рдХрд╛ рд╕реЗрдЯ = "рд╕рд╣реА" рдЧреБрдг рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рджреЛ "рдкрдВрдХреНрддрд┐рдпреЛрдВ" рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ - рдПрдХ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ "рдкреГрд╖реНрда" - рдкреНрд░рджрд░реНрд╢рд┐рдд рдкреГрд╖реНрда рдХреА рд╕рдВрдЦреНрдпрд╛ред

рджреГрд╢реНрдп рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:

 <table class="easyui-datagrid" title="Basic DataGrid" style="width:auto;height:500px" pagination="true" data-options="singleSelect:true,collapsible:true,url:'<?php echo Yii::app()->createUrl("dislocOrders/getData"); ?>'"> <thead> <tr> <th data-options="field:'vagon_no',width:80">тДЦ </th> <th data-options="field:'sp_name',width:100">. </th> <th data-options="field:'fp_name',width:80,align:'right'">. </th> <th data-options="field:'op_st_name',width:60,align:'center'">. </th> <th data-options="field:'op_name',width:80,align:'right'"></th> <th data-options="field:'op_date',width:250"> </th> <th data-options="field:'days_wm',width:60,align:'center'">  -</th> </tr> </thead> </table> 


рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:

 public function actionGetData() { $model = new DislocOrders(); $criteria = new CDbCriteria(); $count=DislocOrders::model()->count($criteria); $criteria->limit = $_POST['rows']; //    ! $criteria->offset = $_POST['rows']*($_POST['page']-1); //    ! $rs = DislocOrders::model()->findAll($criteria); $items = array(); //     foreach( $rs as $row ) { //      ,     $items[] = array( 'order_id' => $row->id, 'vagon_no' => $row->vagon_no, 'sp_name' => $row->sp_name, 'fp_name' => $row->fp_name, 'op_name' => $row->op_name, 'op_st_name' => $row->op_st_name, 'op_date' => $row->op_date, 'days_wm' => $row->days_wm, ); } header('Content-Type: application/json'); echo CJSON::encode( array( total => $count, //  -  rows => $items, //  ) ); Yii::app()->end(); } 


5. рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рд╕реЙрд░реНрдЯрдиреЗрдо = "рдСрд░реНрдбрд░_рдЖрдИрдбреА" рдФрд░ рд╕реЙрд░реНрдЯрдСрд░реНрдбрд░ = "рдПрд╕реНрдХ" рдЧреБрдг рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛, рдХреЙрд▓рдо рдореЗрдВ рд╕реЙрд░реНрдЯреЗрдмрд▓ = "рд╕рд╣реА" рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ, рдлрд┐рд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ "рд╕реЙрд░реНрдЯ" рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВред - рд╡рд╣ рдХреЙрд▓рдо рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЫрдБрдЯрд╛рдИ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ "рдХреНрд░рдо" рдЫрдБрдЯрд╛рдИ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИред

рджреГрд╢реНрдп рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:

 <table class="easyui-datagrid" title="Basic DataGrid" style="width:auto;height:500px" pagination="true" sortName="vagon_no" sortOrder="asc" data-options="singleSelect:true,collapsible:true,url:'<?php echo Yii::app()->createUrl("dislocOrders/getData"); ?>'"> <thead> <tr> <th data-options="field:'vagon_no',width:80" sortable="true">тДЦ </th> <th data-options="field:'sp_name',width:100" sortable="true">. </th> <th data-options="field:'fp_name',width:80,align:'right'">. </th> <th data-options="field:'op_st_name',width:60,align:'center'">. </th> <th data-options="field:'op_name',width:80,align:'right'"></th> <th data-options="field:'op_date',width:250"> </th> <th data-options="field:'days_wm',width:60,align:'center'" sortable="true">  -</th> </tr> </thead> </table> 


рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:

 public function actionGetData() { $model = new DislocOrders(); $criteria = new CDbCriteria(); $count=DislocOrders::model()->count($criteria); //    ! $criteria->limit = $_POST['rows']; $criteria->offset = $_POST['rows']*($_POST['page']-1); $criteria->order = $_POST['sort']." ".$_POST['order']; $rs = DislocOrders::model()->findAll($criteria); $items = array(); //     foreach( $rs as $row ) { //      ,     $items[] = array( 'order_id' => $row->id, 'vagon_no' => $row->vagon_no, 'sp_name' => $row->sp_name, 'fp_name' => $row->fp_name, 'op_name' => $row->op_name, 'op_st_name' => $row->op_st_name, 'op_date' => $row->op_date, 'days_wm' => $row->days_wm, ); } header('Content-Type: application/json'); echo CJSON::encode( array( total => $count, //  -  rows => $items, //  ) ); Yii::app()->end(); } 


6. рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХреЙрд▓рдо рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓реЗрдВ:

 <table class="easyui-datagrid" title="Basic DataGrid" style="width:auto;height:500px" pagination="true" sortName="vagon_no" sortOrder="asc" data-options="singleSelect:true,collapsible:true,url:'<?php echo Yii::app()->createUrl("dislocOrders/getData"); ?>'"> <thead> <tr> <th data-options="field:'vagon_no',width:80,formatter:createLink" sortable="true">тДЦ </th> <th data-options="field:'sp_name',width:100" sortable="true">. </th> <th data-options="field:'fp_name',width:80,align:'right'">. </th> <th data-options="field:'op_st_name',width:60,align:'center'">. </th> <th data-options="field:'op_name',width:80,align:'right'"></th> <th data-options="field:'op_date',width:250"> </th> <th data-options="field:'days_wm',width:60,align:'center'" sortable="true">  -</th> </tr> </thead> </table> <script> function createLink(val,row){ return '<a href="<?php echo Yii::app()->createUrl("dislocOrders/viewHistory"); ?>?id='+row.order_id+'">'+val+'</a>'; } </script> 


рдирд┐рд╖реНрдХрд░реНрд╖



рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЫрдВрдЯрд╛рдИ, рдкреГрд╖реНрдард╛рдВрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫрд╛ рдбреЗрдЯрд╛рдЧреНрд░рд┐рдб рд╣реИ, рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЯреНрд╡рд┐рдЯрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In179243/


All Articles