m_Orchestrate learning system---二十、如何写代码不容易犯错
m_Orchestrate learning system---二十、如何写代码不容易犯错
一、总结
一句话总结:能排序多排序
这次查错的启示:
1、代码数据更规整:要是取出的数据排序的话可以减少很多查错时间
2、多做练习:功积平时,用起来不容易出错,反而节约超多时间
3、循环里面的判断正误:判断正确是要返回的,判断错误不能立即返回,如果错误要所有的全部判断出来再返回
1、复选框如何传递多个值到后端?
复选框参数传递用数组方式
<input type="checkbox" checked="" name="gttid[]" value="{$vo.id}"> {$vo.name}
1、name="gttid[]" 这之中gttid[] 是纯粹的字符串,而不是和php原生代码相关的东西,不要看到[] 就觉得和代码相关,这里只是字符串
2、value="{$vo.id}" 页面带{}的是标签,才是和php代码相关的东西
2、html标签中需要套用php写逻辑怎么操作?
php标签{php}可解决html中标签中嵌套原生php的问题
<input type="checkbox" {php} if(checkId($vo['id'])) echo 'checked="checked"'; {/php} checked="checked" name="gttid[]" value="$vo.id">{$vo.name}
这样就非常棒棒了,就是标签可以实现的功能都可以用原生php来实现
3、在html页面中调用原生php函数接收控制器assign来的数据(在函数中,所以变量要global啊)?
<!-- 作者: 隐藏域 -->
<input type="hidden" name="gtgid" value="{$dataout2.gid}">
<!-- 作者: 隐藏域 --> <?php
function checkId($id){
global $dataGroupTopic; //1、在函数中,所以变量要global啊
foreach($dataGroupTopic as $k => $val){
if($val['gttid']==$id){
return true;
}else{
return false;
}
}
}
?>
<div class="am-form-group">
在函数中,所以变量要global啊
4、view页面原生php中的函数访问不到控制器传过来的数据问题?
1 <input type="hidden" name="gtgid" value="{$dataout2.gid}">
2 <!-- 作者: 隐藏域 -->
3
4 <?php
5 $data22=$dataGroupTopic; //1、这里可以访问到控制器传过来的数据
6 //dump($data22);die;
7 function checkId($dataGroupTopic,$id){ //4、所以只有用传参数的方式了
8 //dump($GLOBALS['data22']);die; //2、这里访问不到控制器传过来的数据
9 //global $dataGroupTopic; //3、这里访问不到控制器传过来的数据
10 //dump($dataGroupTopic);die;
11 foreach($dataGroupTopic as $k => $val){
12 if($val['gttid']==$id){
13 dump($id);die;
14 return true;
15 }else{
16 return false;
17 }
18 }
19 }
20 ?>
21 <div class="am-form-group">
5、页面多选框显示数据只能显示一个的问题?
正确的:

错误的: 页面看到的是显示的最后一个,其实在数据库里面是显示的第一个

面看到的是显示的最后一个,其实在数据库里面是显示的第一个

因为添加去数据库的时候是从小往上添加的,所以最大的数据显示在最上面
这样就误导我了
所以要我是从数据库里面取数据的时候按照id排一下序,那么我就知道我是只显示第一个了
然后就好找错误了
1 <input type="hidden" name="gtgid" value="{$dataout2.gid}">
2 <!-- 作者: 隐藏域 -->
3
4 <?php
5 function checkId($dataGroupTopic,$id){
6 foreach($dataGroupTopic as $k => $val){
7 if(intval($val['gttid'])==intval($id)){
8 return true;
9 }else{ //1、错误是循环还没有比较完,就直接返回false了,去掉这句话就对了,所以要多练习,不然查错很不好查
10 return false;
11 }
12 }
13 }
14 ?>
15 <div class="am-form-group">
16 <label for="user-phone" class="am-u-sm-3 am-form-label">topic</label>
17 <div class="am-u-sm-9 am-checkbox">
18 <ul class="am-avg-sm-3 am-thumbnails">
19
20 {volist name="dataout" id="vo"}
21 <!-- 做复选框选择判定 -->
22 <li>
23 <label class="am-checkbox-inline">
24 <?php
25 /*
26 foreach($dataGroupTopic as $k => $val){
27 if($val['gttid']==$vo['id']){
28 //dump($val['gttid']);
29 echo '<input type="checkbox" checked="checked" name="gttid[]" value="'.$vo['id'].'">';
30 }else{
31 echo '<input type="checkbox" name="gttid[]" value="'.$vo['id'].'">';
32 }
33 }
34 //dump($dataGroupTopic);
35 */
36 ?>
37 <input type="checkbox" {php} if(checkId($dataGroupTopic,$vo['id'])) echo 'checked="checked"'; {/php} name="gttid[]" value="{$vo.id}">{$vo.name}
38 </label>
39 </li>
40 {/volist}
41 </ul>
42 </div>
43 </div>
这次查错的启示:
1、代码数据更规整:要是取出的数据排序的话可以减少很多查错时间
2、多做练习:功积平时,用起来不容易出错,反而节约超多时间
3、循环里面的判断正误:判断正确是要返回的,判断错误不能立即返回,如果错误要所有的全部判断出来再返回
二、内容在总结中
m_Orchestrate learning system---二十、如何写代码不容易犯错的更多相关文章
- m_Orchestrate learning system---二十一、怎样写算法比较轻松
m_Orchestrate learning system---二十一.怎样写算法比较轻松 一.总结 一句话总结:(1.写出算法步骤,这样非常有利于理清思路,这样就非常简单了 2.把问题分细,小问题用 ...
- m_Orchestrate learning system---十二、为什么thinkphp验证场景里面的多个属性之间是逗号
m_Orchestrate learning system---十二.为什么thinkphp验证场景里面的多个属性之间是逗号 一.总结 一句话总结:因为是数组啊 1 protected $scene ...
- Vue(二十五)打包后路径报错问题
1.修改 config - index.js 2.修改 build - utils.js
- m_Orchestrate learning system---二十二、html代码如何变的容易
m_Orchestrate learning system---二十二.html代码如何变的容易 一.总结 一句话总结:(结构清晰之后构建页面就变得超级容易了)(多做多用一下子就熟了) 1.文章显示页 ...
- m_Orchestrate learning system---三十二、数据库字段判断为空时容易出现问题,如何从根本上解决这个问题
m_Orchestrate learning system---三十二.数据库字段判断为空时容易出现问题,如何从根本上解决这个问题 一.总结 一句话总结:字段禁止为空,设置默认值0即可 禁止 空 默认 ...
- m_Orchestrate learning system---三十五、php数据和js数据的解耦:php数据(php代码)不要放到js代码中
m_Orchestrate learning system---三十五.php数据和js数据的解耦:php数据(php代码)不要放到js代码中 一.总结 一句话总结:也就是以html为中介,用html ...
- m_Orchestrate learning system---三十四、使用重定义了$的插件的时候最容易出现的问题是什么
m_Orchestrate learning system---三十四.使用重定义了$的插件的时候最容易出现的问题是什么 一.总结 一句话总结:如下面这段代码,定义了$的值,还是会习惯性的把$当成jQ ...
- m_Orchestrate learning system---二十九、什么情况下用数据库做配置字段,什么情况下用配置文件做配置
m_Orchestrate learning system---二十九.什么情况下用数据库做配置字段,什么情况下用配置文件做配置 一.总结 一句话总结: 配置文件 开发人员 重置 数据库 非开发人员 ...
- m_Orchestrate learning system---二十五、复制类的时候最容易出现的错误是什么
m_Orchestrate learning system---二十五.复制类的时候最容易出现的错误是什么 一.总结 一句话总结:命名空间错误导致Analyze类虽然继承了Base类,但是没有执行里面 ...
随机推荐
- 0x22 迭代加深
poj2248 真是个新套路.还有套路剪枝...大到小和判重 #include<cstdio> #include<iostream> #include<cstring&g ...
- poj--1383--Labyrinth(树的直径)
Labyrinth Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 4062 Accepted: 1529 Descrip ...
- 如何使用github来展示自己的网页
项目文档或者单纯的html页面怎么用github来展示呢? 第一步:新建库 第二步: 上传自己的页面(index.html需在根目录下) 先把git库克隆下来 进入lineShop文件夹,拷贝自己的页 ...
- windows安装mysql注意点
MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的. 以msi格式安装完成后,先别忙着启动mysql,我们还需要修改一下配置文件(如果没有配置,之后启动的时候就会出现图中的错误哦!:错 ...
- jQuery应用实例2:简单动画
效果: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- uploadifive上传文件
uploadifive是一个款基于H5的上传文件的插件.优点是,可以在PC端,也可以在手机上进行操作.缺点是,IE9以下的兼容性不好. View: <!DOCTYPE html> < ...
- JAVA 静态内部类--转自http://bbs.csdn.net/topics/350021609
内部类其实并不是非要声明成static的..主要还是要看实际情况决定..静态和非静态有不同的作用.. 引用一篇文章给楼主参考下吧. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的( ...
- day05-1 执行Python程序的两种方式
目录 执行Python程序的两种方式 第一种:交互式 第二种:命令行式 三个步骤 两种方式的区别 执行Python程序的两种方式 第一种:交互式 在cmd中运行 优点:直接给出结果,执行效率高,及时报 ...
- Lua 中的 RSA 加解密实现
记得之前,部门某款游戏陆陆续续收到一些玩家反馈,抱怨在登录游戏时会等待很久.初步排查后基本断定可能是此游戏的登录服务器程序某块代码有问题,于是即安排了服务器同事作排查分析但一直无果. 之后我时间有了空 ...
- 基于better-scroll封装一个上拉加载下拉刷新组件
1.起因 上拉加载和下拉刷新在移动端项目中是很常见的需求,遂自己便基于better-scroll封装了一个下拉刷新上拉加载组件. 2.过程 better-scroll是目前比较好用的开源滚动库,提供很 ...