PHP与前端结合知识点
1.<script type="text/javascript">
//$("#Form-field-Course-introduction-group").append("<div id="txtNum">0/500</div>"); $("#Form-field-Package-introduction-group").after("<div id="txtNum" style="position: absolute;right: -50px;bottom: 18px;"></div>"); var len=$("#Form-field-Package-introduction").val().length; $("#txtNum").text(len+"/2000"); $("#Form-field-Package-introduction").bind("input propertychange", function() {
var val=$(this).val(); var len=val.length; var count=$(this).siblings("span"); if(len>2000){ len=2000; $(this).val(val.substring(0,2000)); } $("#txtNum").text(len+"/2000"); });
//$("#Form-field-Package-name").attr("maxlength", 30);
</script>
获取,截取2000个字符。
2、前后端对接接口问题 困扰我已久的问题 后台接口: //获取套餐课程信息 public function onGetPackageCourses() { $packageId = post("id",0); $page = post("page",1);
$packageCourseIds = PackageCourseModels::lists("id"); if(!empty($packageCourseIds)){ $packageCourses = PackageCourseModels::whereIn("id",$packageCourseIds) ->with("course") ->get(); } // trace_log($packageCourses);
// return["packageCourses" => $this->makePartial("list_content",["packageCourses" => $packageCourses])]; return $packageCourses; }
前端渲染: 页面: <div class="control-list ">
<?= $this->makePartial("list_content",["packageCourses" => $packageCourses]) ?> </div>
Content 内容对接 <?php foreach( $packageCourses as $packageCourse): ?> <tr id="course-first"> <td><?= $packageCourse->id ?> </td> <td>第二阶段</td> <td>3000</td> <td>236</td> <td><a href="javascript:void(0)" class="view">预览</a>   <span class="specil"><a href="javascript:void(0)"> 移除</a></span> </td> </tr> <?php endforeach ?>
问题:是否是toArray() Tips: get()得出的数据可以直接渲染到页面中 toArray()得出的直接报错,错误信息是 is not object。 如果不是一个对象那就是数组; 5、 对于复杂的页面的嵌套

<link rel="stylesheet" type="text/css" href="/plugins/dapeng/assets/css/watch_record.css"> <?php $courseProduces =$this->getCourseProduces(); $users = $this->getProduces(); $vipCourses = $this->getVipCourses(); $publicCourses = $this->getPublicCourses(); $watchTotal = $this->getWatchTotal();
?> <div class="header-tips"> <div class="tips-left"> 个人进度详情 </div> </div> <div class="control-list"> <?= $this->makePartial("list_schdule_content",["users" => $users,"total" => $watchTotal]) ?> </div> <div class="control-tabs content-tabs" data-control="tab">
<ul class="nav nav-tabs"> <li class="active"> <a href="#contentTabOne">VIP课</a> </li> <li> <a href="#contentTabThree">公开课</a> </li> </ul>
<div class="tab-content" style="overflow: auto;"> <?php if($vipCourses != 0): ?>
<div class="tab-pane active"> <div class="level-tips"> 在学<span>2</span>门课程,已学<span>1</span>门课程,累积时长<span>48</span>小时 </div> <?php foreach($vipCourses as $key => $course): ?> <?php if(!empty($course)): ?> <div class="level-body"> <div class="level-1">
<div class="level-1-title level-style"> <span><?= $course["name"] ?></span> <div class="progress-box"> <span class="pull-left">进度:</span> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;"> </div> </div> <span class="pull-left">60%</span> </div> <span>累积观看时长8小时</span> <span>课时数据</span> <span class="sanjiao-icon icon-sort-asc"></span> </div>
<div class="level-1-body"> <?php foreach($course["period"] as $key1 => $period): ?> <?php if(!empty($period)): ?> <?php foreach($period["units"] as $key2 => $unit): ?> <?php if(!empty($unit)): ?> <div class="level-1-title level-style"> <span><?php echo $unit["name"]; ?></span> <div class="progress-box"> <span class="pull-left">进度:</span> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;">
</div> </div> <span class="pull-left">60%</span> </div> <span>课时数据</span> <span class="sanjiao-icon icon-sort-asc"></span> </div> <div class="level-1-body"> <div class="level-2-tips level-style"> <span class="class-name">课时名称</span> <span class="IP-address">IP地址</span> <span class="borwser-type">浏览器</span> <span class="client-type">客户端</span> <span class="study-time">开始学习时间</span> <span style="width: 200px;padding-left: 20px;">进度</span> <span class="study-time-all">已观看</span> <span class="study-error">异常</span> <span class="icon-share"></span> </div> <div class="level-2"> <?php foreach($unit["lessons"] as $key2 => $lesson): ?> <?php if(!empty($lesson)): ?>
<?php foreach($lesson["watchrecord"] as $key3 => $watchrecord): ?> <?php if(!empty($watchrecord)): ?> <div class="level-2-title level-style"> <span class="class-name" title="啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦了"><?= $lesson["title"] ?> </span>
<span class="IP-address"><?= $watchrecord["address"] ?></span> <span class="borwser-type"><?= $watchrecord["browser"] ?></span> <span class="client-type"><?= $watchrecord["client"] ?></span> <span class="study-time"><?= $watchrecord["watch_time"] ?></span> <div class="progress-box"> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;">
</div> </div> <span class="pull-left"><?= $watchrecord["schedule"] ?>%</span> </div> <span class="study-time-all"><?= $watchrecord["watch_time"] ?></span> <span class="study-error"><?= $watchrecord["exception_record"] ?></span>
<span class="sanjiao-icon icon-sort-desc"></span> </div> <?php endif ?> <?php endforeach ?> <?php endif ?> <?php endforeach ?>
</div> </div>
<?php endif ?>
<?php endforeach ?> <?php endif ?> <?php endforeach ?> </div>
</div> </div> <?php endif ?> <?php endforeach ?> </div> <?php endif ?> <?php if($vipCourses == "0"): ?> <div style="text-align: center; ">
暂无结果
</div> <?php endif ?> <div class="tab-pane"> <?php if($publicCourses != 0): ?>
<div class="tab-pane active"> <div class="level-tips"> 在学<span>2</span>门课程,已学<span>1</span>门课程,累积时长<span>48</span>小时 </div> <?php foreach($publicCourses as $key => $course): ?> <?php if(!empty($course)): ?> <div class="level-body"> <div class="level-1">
<div class="level-1-title level-style"> <span><?= $course["name"] ?></span> <div class="progress-box"> <span class="pull-left">进度:</span> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;"> </div> </div> <span class="pull-left">60%</span> </div> <span>累积观看时长8小时</span> <span>课时数据</span> <span class="sanjiao-icon icon-sort-asc"></span> </div>
<div class="level-1-body"> <?php foreach($course["period"] as $key1 => $period): ?> <?php if(!empty($period)): ?> <?php foreach($period["units"] as $key2 => $unit): ?> <?php if(!empty($unit)): ?> <div class="level-1-title level-style"> <span><?php echo $unit["name"]; ?></span> <div class="progress-box"> <span class="pull-left">进度:</span> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;">
</div> </div> <span class="pull-left">60%</span> </div> <span>课时数据</span> <span class="sanjiao-icon icon-sort-asc"></span> </div> <div class="level-1-body"> <div class="level-2-tips level-style"> <span class="class-name">课时名称</span> <span class="IP-address">IP地址</span> <span class="borwser-type">浏览器</span> <span class="client-type">客户端</span> <span class="study-time">开始学习时间</span> <span style="width: 200px;padding-left: 20px;">进度</span> <span class="study-time-all">已观看</span> <span class="study-error">异常</span> <span class="icon-share"></span> </div> <div class="level-2"> <?php foreach($unit["lessons"] as $key2 => $lesson): ?> <?php if(!empty($lesson)): ?>
<?php foreach($lesson["watchrecord"] as $key3 => $watchrecord): ?> <?php if(!empty($watchrecord)): ?> <div class="level-2-title level-style"> <span class="class-name" title="啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦了"><?= $lesson["title"] ?> </span>
<span class="IP-address"><?= $watchrecord["address"] ?></span> <span class="borwser-type"><?= $watchrecord["browser"] ?></span> <span class="client-type"><?= $watchrecord["client"] ?></span> <span class="study-time"><?= $watchrecord["watch_time"] ?></span> <div class="progress-box"> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;">
</div> </div> <span class="pull-left"><?= $watchrecord["schedule"] ?>%</span> </div> <span class="study-time-all"><?= $watchrecord["watch_time"] ?></span> <span class="study-error"><?= $watchrecord["exception_record"] ?></span>
<span class="sanjiao-icon icon-sort-desc"></span> </div> <?php endif ?> <?php endforeach ?> <?php endif ?> <?php endforeach ?>
</div> </div>
<?php endif ?>
<?php endforeach ?> <?php endif ?> <?php endforeach ?> </div>
</div> </div> <?php endif ?> <?php endforeach ?> </div>
<?php endif ?> </div>
</div> <script type="text/javascript">
</script> <script src="/plugins/dapeng/assets/js/user/watchRecord.js"> </script>
6、php通过路由传参的几种方式 (1)title = "dapeng"
url = "/search-users/:keyword"
layout = "default"
description = "dapeng index"
[searchComponent]
keyword = "{{ :keyword }}" 此步骤是相当于$param =explode("/",Request::getRequestUri()); $url = last($param); 似曾相识angularjs route ( 2 ) 直接传参 title = "dapeng"
url = "/search-users"
layout = "default"
description = "dapeng index"
未完待续......,
//$("#Form-field-Course-introduction-group").append("<div id="txtNum">0/500</div>"); $("#Form-field-Package-introduction-group").after("<div id="txtNum" style="position: absolute;right: -50px;bottom: 18px;"></div>"); var len=$("#Form-field-Package-introduction").val().length; $("#txtNum").text(len+"/2000"); $("#Form-field-Package-introduction").bind("input propertychange", function() {
var val=$(this).val(); var len=val.length; var count=$(this).siblings("span"); if(len>2000){ len=2000; $(this).val(val.substring(0,2000)); } $("#txtNum").text(len+"/2000"); });
//$("#Form-field-Package-name").attr("maxlength", 30);
</script>
获取,截取2000个字符。
2、前后端对接接口问题 困扰我已久的问题 后台接口: //获取套餐课程信息 public function onGetPackageCourses() { $packageId = post("id",0); $page = post("page",1);
$packageCourseIds = PackageCourseModels::lists("id"); if(!empty($packageCourseIds)){ $packageCourses = PackageCourseModels::whereIn("id",$packageCourseIds) ->with("course") ->get(); } // trace_log($packageCourses);
// return["packageCourses" => $this->makePartial("list_content",["packageCourses" => $packageCourses])]; return $packageCourses; }
前端渲染: 页面: <div class="control-list ">
<?= $this->makePartial("list_content",["packageCourses" => $packageCourses]) ?> </div>
Content 内容对接 <?php foreach( $packageCourses as $packageCourse): ?> <tr id="course-first"> <td><?= $packageCourse->id ?> </td> <td>第二阶段</td> <td>3000</td> <td>236</td> <td><a href="javascript:void(0)" class="view">预览</a>   <span class="specil"><a href="javascript:void(0)"> 移除</a></span> </td> </tr> <?php endforeach ?>
问题:是否是toArray() Tips: get()得出的数据可以直接渲染到页面中 toArray()得出的直接报错,错误信息是 is not object。 如果不是一个对象那就是数组; 5、 对于复杂的页面的嵌套
<link rel="stylesheet" type="text/css" href="/plugins/dapeng/assets/css/watch_record.css"> <?php $courseProduces =$this->getCourseProduces(); $users = $this->getProduces(); $vipCourses = $this->getVipCourses(); $publicCourses = $this->getPublicCourses(); $watchTotal = $this->getWatchTotal();
?> <div class="header-tips"> <div class="tips-left"> 个人进度详情 </div> </div> <div class="control-list"> <?= $this->makePartial("list_schdule_content",["users" => $users,"total" => $watchTotal]) ?> </div> <div class="control-tabs content-tabs" data-control="tab">
<ul class="nav nav-tabs"> <li class="active"> <a href="#contentTabOne">VIP课</a> </li> <li> <a href="#contentTabThree">公开课</a> </li> </ul>
<div class="tab-content" style="overflow: auto;"> <?php if($vipCourses != 0): ?>
<div class="tab-pane active"> <div class="level-tips"> 在学<span>2</span>门课程,已学<span>1</span>门课程,累积时长<span>48</span>小时 </div> <?php foreach($vipCourses as $key => $course): ?> <?php if(!empty($course)): ?> <div class="level-body"> <div class="level-1">
<div class="level-1-title level-style"> <span><?= $course["name"] ?></span> <div class="progress-box"> <span class="pull-left">进度:</span> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;"> </div> </div> <span class="pull-left">60%</span> </div> <span>累积观看时长8小时</span> <span>课时数据</span> <span class="sanjiao-icon icon-sort-asc"></span> </div>
<div class="level-1-body"> <?php foreach($course["period"] as $key1 => $period): ?> <?php if(!empty($period)): ?> <?php foreach($period["units"] as $key2 => $unit): ?> <?php if(!empty($unit)): ?> <div class="level-1-title level-style"> <span><?php echo $unit["name"]; ?></span> <div class="progress-box"> <span class="pull-left">进度:</span> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;">
</div> </div> <span class="pull-left">60%</span> </div> <span>课时数据</span> <span class="sanjiao-icon icon-sort-asc"></span> </div> <div class="level-1-body"> <div class="level-2-tips level-style"> <span class="class-name">课时名称</span> <span class="IP-address">IP地址</span> <span class="borwser-type">浏览器</span> <span class="client-type">客户端</span> <span class="study-time">开始学习时间</span> <span style="width: 200px;padding-left: 20px;">进度</span> <span class="study-time-all">已观看</span> <span class="study-error">异常</span> <span class="icon-share"></span> </div> <div class="level-2"> <?php foreach($unit["lessons"] as $key2 => $lesson): ?> <?php if(!empty($lesson)): ?>
<?php foreach($lesson["watchrecord"] as $key3 => $watchrecord): ?> <?php if(!empty($watchrecord)): ?> <div class="level-2-title level-style"> <span class="class-name" title="啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦了"><?= $lesson["title"] ?> </span>
<span class="IP-address"><?= $watchrecord["address"] ?></span> <span class="borwser-type"><?= $watchrecord["browser"] ?></span> <span class="client-type"><?= $watchrecord["client"] ?></span> <span class="study-time"><?= $watchrecord["watch_time"] ?></span> <div class="progress-box"> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;">
</div> </div> <span class="pull-left"><?= $watchrecord["schedule"] ?>%</span> </div> <span class="study-time-all"><?= $watchrecord["watch_time"] ?></span> <span class="study-error"><?= $watchrecord["exception_record"] ?></span>
<span class="sanjiao-icon icon-sort-desc"></span> </div> <?php endif ?> <?php endforeach ?> <?php endif ?> <?php endforeach ?>
</div> </div>
<?php endif ?>
<?php endforeach ?> <?php endif ?> <?php endforeach ?> </div>
</div> </div> <?php endif ?> <?php endforeach ?> </div> <?php endif ?> <?php if($vipCourses == "0"): ?> <div style="text-align: center; ">
暂无结果
</div> <?php endif ?> <div class="tab-pane"> <?php if($publicCourses != 0): ?>
<div class="tab-pane active"> <div class="level-tips"> 在学<span>2</span>门课程,已学<span>1</span>门课程,累积时长<span>48</span>小时 </div> <?php foreach($publicCourses as $key => $course): ?> <?php if(!empty($course)): ?> <div class="level-body"> <div class="level-1">
<div class="level-1-title level-style"> <span><?= $course["name"] ?></span> <div class="progress-box"> <span class="pull-left">进度:</span> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;"> </div> </div> <span class="pull-left">60%</span> </div> <span>累积观看时长8小时</span> <span>课时数据</span> <span class="sanjiao-icon icon-sort-asc"></span> </div>
<div class="level-1-body"> <?php foreach($course["period"] as $key1 => $period): ?> <?php if(!empty($period)): ?> <?php foreach($period["units"] as $key2 => $unit): ?> <?php if(!empty($unit)): ?> <div class="level-1-title level-style"> <span><?php echo $unit["name"]; ?></span> <div class="progress-box"> <span class="pull-left">进度:</span> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;">
</div> </div> <span class="pull-left">60%</span> </div> <span>课时数据</span> <span class="sanjiao-icon icon-sort-asc"></span> </div> <div class="level-1-body"> <div class="level-2-tips level-style"> <span class="class-name">课时名称</span> <span class="IP-address">IP地址</span> <span class="borwser-type">浏览器</span> <span class="client-type">客户端</span> <span class="study-time">开始学习时间</span> <span style="width: 200px;padding-left: 20px;">进度</span> <span class="study-time-all">已观看</span> <span class="study-error">异常</span> <span class="icon-share"></span> </div> <div class="level-2"> <?php foreach($unit["lessons"] as $key2 => $lesson): ?> <?php if(!empty($lesson)): ?>
<?php foreach($lesson["watchrecord"] as $key3 => $watchrecord): ?> <?php if(!empty($watchrecord)): ?> <div class="level-2-title level-style"> <span class="class-name" title="啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦了"><?= $lesson["title"] ?> </span>
<span class="IP-address"><?= $watchrecord["address"] ?></span> <span class="borwser-type"><?= $watchrecord["browser"] ?></span> <span class="client-type"><?= $watchrecord["client"] ?></span> <span class="study-time"><?= $watchrecord["watch_time"] ?></span> <div class="progress-box"> <div class="progress pull-left"> <div class="progress-bar" style="width: 60%;">
</div> </div> <span class="pull-left"><?= $watchrecord["schedule"] ?>%</span> </div> <span class="study-time-all"><?= $watchrecord["watch_time"] ?></span> <span class="study-error"><?= $watchrecord["exception_record"] ?></span>
<span class="sanjiao-icon icon-sort-desc"></span> </div> <?php endif ?> <?php endforeach ?> <?php endif ?> <?php endforeach ?>
</div> </div>
<?php endif ?>
<?php endforeach ?> <?php endif ?> <?php endforeach ?> </div>
</div> </div> <?php endif ?> <?php endforeach ?> </div>
<?php endif ?> </div>
</div> <script type="text/javascript">
</script> <script src="/plugins/dapeng/assets/js/user/watchRecord.js"> </script>
6、php通过路由传参的几种方式 (1)title = "dapeng"
url = "/search-users/:keyword"
layout = "default"
description = "dapeng index"
[searchComponent]
keyword = "{{ :keyword }}" 此步骤是相当于$param =explode("/",Request::getRequestUri()); $url = last($param); 似曾相识angularjs route ( 2 ) 直接传参 title = "dapeng"
url = "/search-users"
layout = "default"
description = "dapeng index"
未完待续......,
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: PHP重点难点算法与面试
- 下一篇: PHP Excel的导入与导出功能