网上很多介绍jquery的load实例都是用的静态html.这里介绍自己写过的引用业务逻辑处理数据的load实例
load用户异步加载含有大量数据时的页面。
功能实现:点击下一周 按钮,load提交请求到服务器,处理数据后异步加载这个表格
相关文件:
doctor_adjust.php:如图中所示包含要刷新表格数据的视图文件(内有php数据)
docSchedule.php :从上面的文件中将表格的这部分视图文件copy进来,这是要异步加载的表格视图文件(内有php数据)
c_doctor_adjust.php:控制器文件,写业务逻辑的地方。
基本操作流程:
doctor_adjust.php文件内的jquery调用load函数(get/post)到c_doctor_adjust.php文件中进行业务逻辑处理拿数据,在处理之后紧跟着引入docSchedule.php文件,这样带数据的表格文件就生成了。前台会引入生成的这个页面。
注意:load引入的地址是静态地址,即从项目目录下面找,如果定义了APP_ROOT 这种项目路径的话会出错。
jquery代码(doctor_adjust.php):
1 //点击下一周刷新 2 $(‘#nextweek‘).click(function(){ 3 var weekid = $(‘#weekId‘).val(); 4 $(‘#box-body‘).load("index.php?f=/doctor/c_doctor_adjust&c=CDAdjust&m=getNext7daySch",{"weekId":weekid}); 5 });
下一周的按钮id是nextweek,文件当中还有一个标志周id的隐藏input,id是weekId
load当中的index.php是项目根目录下面的,后面的不用管,总之是定位到你的业务逻辑方法里了,这里是定位到c_doctor_adjust.php中的CDAdjust类中的getNext7daySch()方法里。如果用了框架的话实现机制可能不一样,但要谨记,load的地址是一个静态html地址,不会运行php代码。后面的{"weekId":weekid}是要附带的参数,这样会以post方式提交,没有参数的话默认get.
业务逻辑代码(c_doctor_adjust.php):
1 /* 2 * 得到下周的医生排班数据 3 */ 4 public function getNext7daySch(){ 5 $weekId = $_REQUEST[‘weekId‘]; 6 // 求出本医院医生执业记录 7 $dts[0] = $this->docPraCon->getDocPracs(); 8 // 求出7天数据 9 $dts[1] = $this->cycDatCon->getN7Days($weekId); 10 if(!$dts[1])TooFnc::ajaxMsg(0,"下周数据不存在"); 11 //print_r($dts[1]); 12 //根据7天初始化schedules 13 //每一天对应3个schedule 14 $schs = array(); 15 for($i=0;$i<count($dts[1]);$i++){ 16 $days = $dts[1]; 17 $temp = $this->schCon->getSchIds($days[$i][‘id‘]); 18 if(!$temp)ToolFnc::ajaxMsg(0,"下周schedule数据不存在"); 19 for($j=0;$j<count($temp);++$j){ 20 $schs[$i][$j] = $temp[$j][‘sid‘]; 21 } 22 23 } 24 25 $dts[2] = $schs; 26 unset($schs); 27 //print_r($dts[0]); 28 //print_r($dts[1]); 29 //print_r($schs); 30 31 //对于每一个医生practicingid,取出对应的排班信息 32 //构造排班数据 33 for ($i=0;$i<count($dts[0]);++$i){ 34 $pid = $dts[0][$i][‘doctor_practicing_id‘]; 35 $dts[0][$i][‘templates‘] = array(); 36 // print_r($pid); 37 $temp = $this->docSchCon->getDocSch($pid); 38 //print_r($temp); 39 if($temp){ 40 foreach($temp as $k){ 41 $time = $k[‘schedule_id‘]; 42 $dts[0][$i][‘templates‘][$time] = 1; 43 } 44 } 45 46 47 } 48 require_once APP_ROOT.‘/view/schedule/docSchedule.php‘; 49 //ToolFnc::ajaxMsg(1,"成功"); 50 //print_r($dts[0]); 51 52 //求出7天的值班信息 53 //$dts[2] 54 55 }
这里只要看标红的3行代码就行了,取出id,通过id数据库里取数据,然后生成将想要load的文件(require_once操作)。
生成的docSchedule.php文件:
1 <div class="box-body"> 2 <table style="border: 1px blue solid; width: 100%;"> 3 <tr style="border: 0px blue solid;"> 4 <td style="border: 0px blue solid;"> </td> 5 <td style="border: 0px blue solid;"> </td> 6 <td style="border: 1px blue solid; text-align: center;" colSpan="7">工作周</td> 7 </tr> 8 <tr style="border: 0px blue solid;"> 9 <td style="border: 0px blue solid;">区域</td> 10 <td style="border: 0px blue solid;">医生</td> 11 12 <input type="hidden" id="weekId" name="weekid" value="<?=$dts[1][0][‘cd‘] ?>" /> 13 <?php foreach ($dts[1] as $dt) { ?> 14 <td style="border: 1px blue solid;"> 15 <?=$dt[‘md‘] ?></td> 16 <?php }?> 17 <!-- 18 <td style="border: 1px blue solid;">04-05</td> 19 <td style="border: 1px blue solid;">04-06</td> 20 <td style="border: 1px blue solid;">04-07</td> 21 <td style="border: 1px blue solid;">04-08</td> 22 <td style="border: 1px blue solid;">04-09</td> 23 <td style="border: 1px blue solid;">04-10</td> 24 --> 25 </tr> 26 <tr style="border: 0px blue solid;"> 27 <td style="border: 0px blue solid;"> </td> 28 <td style="border: 0px blue solid;"> </td> 29 <td style="border: 1px blue solid;">周一</td> 30 <td style="border: 1px blue solid;">周二</td> 31 <td style="border: 1px blue solid;">周三</td> 32 <td style="border: 1px blue solid;">周四</td> 33 <td style="border: 1px blue solid;">周五</td> 34 <td style="border: 1px blue solid;">周六</td> 35 <td style="border: 1px blue solid;">周日</td> 36 </tr> 37 <?php foreach ($dts[0] as $dt) { ?> 38 <tr style="border: 0px blue solid;"> 39 <td style="border: 1px blue solid;"><?php echo $dt[‘dept_name‘]; ?></td> 40 <td style="border: 1px blue solid;"><?php echo $dt[‘doctor_name‘]; ?></td> 41 <td style="border: 1px blue solid;"> 42 <table style="width: 100%; color: white;"> 43 <tr style="background-color: red;"> 44 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][0][0];?>"> 45 <?php if (isset($dt[‘templates‘][$dts[2][0][0]])){ ?> 46 <span id="dptsd_<?php echo $dts[2][0][0];?>">上班</span> 47 <i id="icon1" class="fa fa-times"></i> 48 <?php } else { ?> 49 50 <?php } ?> 51 </td> 52 </tr> 53 <tr style="background-color: green;"> 54 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][0][1];?>"> 55 <?php if (isset($dt[‘templates‘][$dts[2][0][1]])) { ?> 56 <span id="dptsd_<?php echo $dts[2][0][1];?>">上班</span> 57 <i id="icon1" class="fa fa-times"></i> 58 <?php } else { ?> 59 60 <?php } ?> 61 </td> 62 63 </tr> 64 <tr style="background-color: blue;"> 65 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][0][2];?>"> 66 <?php if (isset($dt[‘templates‘][$dts[2][0][2]])) { ?> 67 <span id="dptsd_<?php echo $dts[2][0][2];?>">上班</span> 68 <i id="icon1" class="fa fa-times"></i> 69 <?php } else { ?> 70 71 <?php } ?> 72 </td> 73 </tr> 74 </table> 75 </td> 76 <td style="border: 1px blue solid;"> 77 <table style="width: 100%; color: white;"> 78 <tr style="background-color: red;"> 79 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][1][0];?>"> 80 <?php if (isset($dt[‘templates‘][$dts[2][1][0]])) { ?> 81 <span id="dptsd_<?php echo $dts[2][1][0];?>">上班</span> 82 <i id="icon1" class="fa fa-times"></i> 83 <?php } else { ?> 84 85 <?php } ?> 86 </td> 87 </tr> 88 <tr style="background-color: green;"> 89 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][1][1];?>"> 90 <?php if (isset($dt[‘templates‘][$dts[2][1][1]])) { ?> 91 <span id="dptsd_<?php echo $dts[2][1][1];?>">上班</span> 92 <i id="icon1" class="fa fa-times"></i> 93 <?php } else { ?> 94 95 <?php } ?> 96 </td> 97 </tr> 98 <tr style="background-color: blue;"> 99 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][1][2];?>"> 100 <?php if (isset($dt[‘templates‘][$dts[2][1][2]])) { ?> 101 <span id="dptsd_<?php echo $dts[2][1][2];?>">上班</span> 102 <i id="icon1" class="fa fa-times"></i> 103 <?php } else { ?> 104 105 <?php } ?> 106 </td> 107 </tr> 108 </table> 109 </td> 110 <td style="border: 1px blue solid;"> 111 <table style="width: 100%; color: white;"> 112 <tr style="background-color: red;"> 113 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][2][0];?>"> 114 <?php if (isset($dt[‘templates‘][$dts[2][2][0]])) { ?> 115 <span id="dptsd_<?php echo $dts[2][2][0];?>">上班</span> 116 <i id="icon1" class="fa fa-times"></i> 117 <?php } else { ?> 118 119 <?php } ?> 120 </td> 121 </tr> 122 <tr style="background-color: green;"> 123 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][2][1];?>"> 124 <?php if (isset($dt[‘templates‘][$dts[2][2][1]])) { ?> 125 <span id="dptsd_<?php echo $dts[2][2][1];?>">上班</span> 126 <i id="icon1" class="fa fa-times"></i> 127 <?php } else { ?> 128 129 <?php } ?> 130 </td> 131 </tr> 132 <tr style="background-color: blue;"> 133 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][2][2];?>"> 134 <?php if (isset($dt[‘templates‘][$dts[2][2][2]])) { ?> 135 <span id="dptsd_<?php echo $dts[2][2][2];?>">上班</span> 136 <i id="icon1" class="fa fa-times"></i> 137 <?php } else { ?> 138 139 <?php } ?> 140 </td> 141 </tr> 142 </table> 143 </td> 144 <td style="border: 1px blue solid;"> 145 <table style="width: 100%; color: white;"> 146 <tr style="background-color: red;"> 147 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][3][0];?>"> 148 <?php if (isset($dt[‘templates‘][$dts[2][3][0]])) { ?> 149 <span id="dptsd_<?php echo $dts[2][3][0];?>">上班</span> 150 <i id="icon1" class="fa fa-times"></i> 151 <?php } else { ?> 152 153 <?php } ?> 154 </td> 155 </tr> 156 <tr style="background-color: green;"> 157 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][3][1];?>"> 158 <?php if (isset($dt[‘templates‘][$dts[2][3][1]])) { ?> 159 <span id="dptsd_<?php echo $dts[2][3][1];?>">上班</span> 160 <i id="icon1" class="fa fa-times"></i> 161 <?php } else { ?> 162 163 <?php } ?> 164 </td> 165 </tr> 166 <tr style="background-color: blue;"> 167 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][3][2];?>"> 168 <?php if (isset($dt[‘templates‘][$dts[2][3][2]])) { ?> 169 <span id="dptsd_<?php echo $dts[2][3][2];?>">上班</span> 170 <i id="icon1" class="fa fa-times"></i> 171 <?php } else { ?> 172 173 <?php } ?> 174 175 </td> 176 </tr> 177 </table> 178 </td> 179 <td style="border: 1px blue solid;"> 180 <table style="width: 100%; color: white;"> 181 <tr style="background-color: red;"> 182 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][4][0];?>"> 183 <?php if (isset($dt[‘templates‘][$dts[2][4][0]])) { ?> 184 <span id="dptsd_<?php echo $dts[2][4][0];?>">上班</span> 185 <i id="icon1" class="fa fa-times"></i> 186 <?php } else { ?> 187 188 <?php } ?> 189 </td> 190 </tr> 191 <tr style="background-color: green;"> 192 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][4][1];?>"> 193 <?php if (isset($dt[‘templates‘][$dts[2][4][1]])) { ?> 194 <span id="dptsd_<?php echo $dts[2][4][1];?>">上班</span> 195 <i id="icon1" class="fa fa-times"></i> 196 <?php } else { ?> 197 198 <?php } ?> 199 </td> 200 </tr> 201 <tr style="background-color: blue;"> 202 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][4][2];?>"> 203 <?php if (isset($dt[‘templates‘][$dts[2][4][2]])) { ?> 204 <span id="dptsd_<?php echo $dts[2][4][2];?>">上班</span> 205 <i id="icon1" class="fa fa-times"></i> 206 <?php } else { ?> 207 208 <?php } ?> 209 </td> 210 </tr> 211 </table> 212 </td> 213 <td style="border: 1px blue solid;"> 214 <table style="width: 100%; color: white;"> 215 <tr style="background-color: red;"> 216 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][5][0];?>"> 217 <?php if (isset($dt[‘templates‘][$dts[2][5][0]])) { ?> 218 <span id="dptsd_<?php echo $dts[2][5][0];?>">上班</span> 219 <i id="icon1" class="fa fa-times"></i> 220 <?php } else { ?> 221 222 <?php } ?> 223 </td> 224 </tr> 225 <tr style="background-color: green;"> 226 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][5][1];?>"> 227 <?php if (isset($dt[‘templates‘][$dts[2][5][1]])) { ?> 228 <span id="dptsd_<?php echo $dts[2][5][1];?>">上班</span> 229 <i id="icon1" class="fa fa-times"></i> 230 <?php } else { ?> 231 232 <?php } ?> 233 </td> 234 </tr> 235 <tr style="background-color: blue;"> 236 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][5][2];?>"> 237 <?php if (isset($dt[‘templates‘][$dts[2][5][2]])) { ?> 238 <span id="dptsd_<?php echo $dts[2][5][2];?>">上班</span> 239 <i id="icon1" class="fa fa-times"></i> 240 <?php } else { ?> 241 242 <?php } ?> 243 </td> 244 </tr> 245 </table> 246 </td> 247 <td style="border: 1px blue solid;"> 248 <table style="width: 100%; color: white;"> 249 <tr style="background-color: red;"> 250 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][6][0];?>"> 251 <?php if (isset($dt[‘templates‘][$dts[2][6][0]])) { ?> 252 <span id="dptsd_<?php echo $dts[2][6][0];?>">上班</span> 253 <i id="icon1" class="fa fa-times"></i> 254 <?php } else { ?> 255 256 <?php } ?> 257 </td> 258 </tr> 259 <tr style="background-color: green;"> 260 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][6][1];?>"> 261 <?php if (isset($dt[‘templates‘][$dts[2][6][1]])) { ?> 262 <span id="dptsd_<?php echo $dts[2][6][1];?>">上班</span> 263 <i id="icon1" class="fa fa-times"></i> 264 <?php } else { ?> 265 266 <?php } ?> 267 </td> 268 </tr> 269 <tr style="background-color: blue;"> 270 <td id="dpts_<?php echo $dt[‘doctor_practicing_id‘]; ?>_<?php echo $dts[2][6][2];?>"> 271 <?php if (isset($dt[‘templates‘][$dts[2][6][2]])) { ?> 272 <span id="dptsd_<?php echo $dts[2][6][2];?>">上班</span> 273 <i id="icon1" class="fa fa-times"></i> 274 <?php } else { ?> 275 276 <?php } ?> 277 </td> 278 </tr> 279 </table> 280 </td> 281 </tr> 282 <?php } ?> 283 284 285 286 287 288 289 </table> 290 </div> 291 <!-- 列表结束 -->
可以看到,表格视图文件需要加载的数据很多。require进来之后,这个带数据的表格文件就有了,前台的load方法会把这个页面替换掉。