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类,但是没有执行里面 ...
随机推荐
- hive1.2伪分布mysql数据库配置具体解释
hadoop2.6伪分布配置:http://blog.csdn.net/gamer_gyt/article/details/46793731 hive1.2 derby元数据库配置:http://b ...
- java多线程 interrupt(), interrupted(), isInterrupted()方法区别
interrupt()方法: 作用是中断线程. 本线程中断自身是被允许的,且"中断标记"设置为true 其它线程调用本线程的interrupt()方法时,会通过checkAcces ...
- c++面向对象程序设计 谭浩强 第二章答案
类体内定义成员函数 #include <iostream> using namespace std; class Time { public: void set_time(); void ...
- javascript动画函数封装
function animate(obj, target) { clearInterval(obj.timer); obj.timer = setInterval(function () { var ...
- 利用PBFunc在Powerbuilder中进行图片格式转换
利用PBFunc的n_pbfunc_image对象可以方便的进行图片格式的转换与大小转换 支持相互转换的格式有以下几种: FORMAT_BMP //bmp格式FORMAT_GIF //gif格式FO ...
- js input 只能输入数字
HTML网页上这么写 <input type="text" style="ime-mode:disabled;" onpaste="return ...
- thinkphp5 模板中截取中文字符串
TP5模板页截取中文字符串 {$vo.task_detail|mb_substr=###,0,15,'utf-8'}
- Linux入门学习
什么是Linux? Linux是一个操作系统软件.和Windows不同的是,Linux是一套开放源代码程序的.并可以自由传播的类Unix操作系统,它是一个支持多用户.多任务.多线程和多CPU的操作系统 ...
- luogu P1354 房间最短路问题 计算几何_Floyd_线段交
第一次写计算几何,还是很开心的吧(虽然题目好水qaq) 暴力枚举端点,暴力连边即可 用线段交判一下是否可行. Code: #include <cstdio> #include <al ...
- 路飞学城Python-Day24(practise)
本章总结 练习题 什么是C/S架构? C指的是client(客户端软件),S指的是Server(服务端软件)