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 }