yii2.0 - ajax【返回且展示数据】

  1 ========================================== 前端视图部分  ==========================================
  3 <?php
  4 
  5 use app\services\PurchaseOrderServices;
  6 use app\config\Vhelper;
  7 use app\services\BaseServices;
  8 use mdm\admin\components\Helper;
  9 ?>
 10 
 11     <div class="panel panel-success">
 12         <h4 align="center" style="font-weight:bold;color: red;">ajax验证和修改数据</h4>
 13         <div class="panel panel-body">
 14             <h4>温馨小提示:</h4>
 15             <ol style="color:red;font-weight: bold;">
 16                 <li>提示内容</li>
 17             </ol>
 18             <div class="form-group">
 19                 <label class="control-label" for="update_purchase_order_warehouse_code_pur_number">采购单单号</label>
 20                 <input type="text" id="update_purchase_order_warehouse_code_pur_number" class="form-control">
 21                 <div class="table-responsive">
 22                     <table style="table-layout: fixed;" class="table table-striped table-bordered table-hover">
 23                         <caption>采购订单主表</caption>
 24                         <!-- ajax返回的数据,追加到tbody -->
 25                         <tbody id="select_purchase_order_warehouse_code_pur_number"></tbody>
 26                     </table>
 27                 </div>
 28             </div>
 29             <div class="form-group">
 30                 <label>采购单仓库--修改后的</label>
 31                 <!-- 下拉框 -->
 32                 <select id="update_purchase_order_warehouse_code_new" class="form-control">
 33                     <option value="">请选择仓库</option>
 34                     <?php
 35                     foreach (BaseServices::getWarehouseCode() as $k => $v) {
 36                         echo '<option value="' . $k . '">'. $v .'</option>';
 37                     }
 38                     ?>
 39                 </select>
 40                 <div class="help-block"></div>
 41             </div>
 42             <div class="form-group">
 43                 <!-- 权限控制:【有权限执行:update-purchase-order-warehouse-code】  -->
 44                 <?php if(Helper::checkRoute('update-purchase-order-warehouse-code')) {
 45                     echo '<span id="update_purchase_order_warehouse_code_btn" class="btn btn-success">修改采购单仓库</span>';
 46                 }?>
 47 
 48             </div>
 49         </div>
 50         <!-- 最后追加的数据【提示数据】  -->
 51         <div class="panel-footer">
 52             <span id="update_purchase_order_warehouse_code_span"></span>
 53         </div>
 54     </div>
 55 
 56 <?php
 57 <!-- 设置路由 -->
 58 //$viewUrl = Url::toRoute('/waste-all-arrival/waste-all-arrival');
 59 $js = <<<JS
 60 $(function() {
 61     var kkk = {
 62         red: 'red',
 63         green: 'green',
 64         dark: 'dark',
 65     };
 66     //===============  展示产品详情 ===================
 67     // 当 input框 失去焦点时,触发事件
 68     $("#update_purchase_order_warehouse_code_pur_number").blur(function(){
 69         // 获取 input框 中的值【trim 过滤掉空白字符】
 70         var pur_number = $.trim($('#update_purchase_order_warehouse_code_pur_number').val());
 71         //当 input框中的值为空时,清空追加的数据
 72         if(pur_number == '') {
 73             $('#select_purchase_order_warehouse_code_pur_number').html('');
 74             return false;
 75         }
 76         
 77         // ajax post请求
 78         $.ajax({
 79             url: 'select-purchase-order-warehouse-code',  //请求地址
 80             data: {pur_number: pur_number},  //传到后台的数据
 81             type: 'post',  //post请求
 82             dataType: 'json', //json格式
 83             success: function(data) {  //返回的数据
 84                var purchase_order =  data.purchase_order;
 85                
 86                //清空上一次追加的数据
 87                $('#select_purchase_order_warehouse_code_pur_number').html('');
 88                
 89                if (purchase_order=='') {
 90                    $('#select_purchase_order_warehouse_code_pur_number').append('<span style="font-weight: bold;color:red;">没有该采购单 -- '+ pur_number + '</span>');
 91                } else {
 92                    //循环取出数据
 93                    $(purchase_order).each(function(pk,pv) {
 94                        $(pv).each(function(k,v) {
 95                             //追加数据到 tbody中
 96                              $('#select_purchase_order_warehouse_code_pur_number').append('<tr class="size-row success">' +
 97                               '<td>' + v['pur_number'] +'</td>' +
 98                               '<td>' + v['warehouse_code'] +'</td>' +
 99                                '</tr');
100                        });
101                    });
102                }
103             }
104         });   
105     }) ;
106     //================ 修改采购单状态  ================================
107     //点击时触发事件
108     $('#update_purchase_order_warehouse_code_btn').click(function() {
109         var pur_number = $.trim($('#update_purchase_order_warehouse_code_pur_number').val()); //采购单单号
110         var warehouse_code_new = $.trim($('#update_purchase_order_warehouse_code_new').val()); //仓库
111 
112         if(pur_number == '' || warehouse_code_new == '') {
113             alert('采购单单号 或 仓库 不能为空');
114             return false;
115         }
116 
117         $.ajax({
118             url: 'update-purchase-order-warehouse-code',
119             data: {pur_number: pur_number,warehouse_code_new:warehouse_code_new},
120             type: 'post',
121             dataType: 'json',
122             success: function(data) {
123                var d =  data.message;
124                $('#update_purchase_order_warehouse_code_span').html('');
125                $(d).each(function(k,v) {
126                     var color = kkk[v['color']];
127                     //追加到  span中
128                     $('#update_purchase_order_warehouse_code_span').append('<p style="font-weight:bold;color:'+color+'">'+v['msg']+'</p>');
129                });
130             }
131         });   
132     });
133     //=============================================================================
134 });
135 JS;
136 $this->registerJs($js);
137 ?>
138 
139 
140 
141 
142 =========================================  后端控制器部分 =========================================
144 <?php
145 namespace app\controllers;
146 
147 use app\config\Vhelper;
148 use app\models\PurchaseOrder;
149 
150 class WasteAllArrivalController extends BaseController
151 {
152     /**
153      * 首页
154      */
155     public function actionIndex()
156     {
157         return $this->render('index', []);
158     }
159     /**
160      * ============================ 修改:采购单仓库 ============================
161      */
162     //需要有执行这个方法的权限,开会显示提交按钮
163     public function actionUpdatePurchaseOrderWarehouseCode()
164     {
165         $pur_number = trim(\Yii::$app->request->post('pur_number'));
166         $warehouse_code_new = trim(\Yii::$app->request->post('warehouse_code_new'));
167 
168         $get_order_info = PurchaseOrder::find()->where(['pur_number'=>$pur_number])->asArray()->one();
169         if (!empty($get_order_info)) {
170             $status = PurchaseOrder::updateAll(['warehouse_code'=>$warehouse_code_new],['id'=>$get_order_info['id']]);
171 
172             //保存到日志
173             $log['type']=22;
174             $log['pid']= null;
175             $log['pur_number']=$pur_number;
176             $log['module']='修改:采购单仓库';
177             $log['content']='=======修改后:warehouse_code:' . $warehouse_code_new .'===相关表:pur_purchase_order';
178             Vhelper::setOperatLog($log);
179 
180             $data[] = ['color'=>'green','msg'=>'******* 最终结果:修改成功!! ********'. date('H:i:s',time())];
181         } else {
182             $data[] = ['color'=>'red','msg'=>'旧的--仓库错误'];
183             $data[] = ['color'=>'red','msg'=>'******* 最终结果:修改失败!! ********'. date('H:i:s',time())];
184         }
185         return json_encode(['error' => 1, 'message'=>$data]);
186     }
187 
188     /**
189      * 查看:详情
190      */
191     public function actionSelectPurchaseOrderWarehouseCode()
192     {
193         $pur_number = trim(\Yii::$app->request->post('pur_number'));
194 
195         $purchase_order_info = $this->selectPurchaseOrderInfo($pur_number);
196         return json_encode(['error' => 1, 'purchase_order'=>$purchase_order_info]);
197     }
198     /**
199      * ======== 订单详情表 ========
200      */
201     public function selectPurchaseOrderInfo($pur_number) {
202         $purchase_order=[];
203         $purchase_order_info = PurchaseOrder::find()
204             ->where(['pur_number'=>$pur_number])
205             ->asArray()
206             ->one();
207 
208         if (!empty($purchase_order_info)) {
209             $purchase_order[] = ['pur_number'=>'PO号', 'is_drawback'=>'是否退税', 'warehouse_code'=>'仓库编码'];
210             $purchase_order_info['is_drawback'] = $purchase_order_info['is_drawback'] ==1 ?'不退':'退';
211             $purchase_order[] = $purchase_order_info;
212         }
213         return $purchase_order;
214     }

 

posted @ 2018-04-12 20:40  liuweipcs  阅读(131)  评论(0编辑  收藏  举报