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---二十、如何写代码不容易犯错的更多相关文章

  1. m_Orchestrate learning system---二十一、怎样写算法比较轻松

    m_Orchestrate learning system---二十一.怎样写算法比较轻松 一.总结 一句话总结:(1.写出算法步骤,这样非常有利于理清思路,这样就非常简单了 2.把问题分细,小问题用 ...

  2. m_Orchestrate learning system---十二、为什么thinkphp验证场景里面的多个属性之间是逗号

    m_Orchestrate learning system---十二.为什么thinkphp验证场景里面的多个属性之间是逗号 一.总结 一句话总结:因为是数组啊 1 protected $scene ...

  3. Vue(二十五)打包后路径报错问题

    1.修改 config - index.js 2.修改 build - utils.js

  4. m_Orchestrate learning system---二十二、html代码如何变的容易

    m_Orchestrate learning system---二十二.html代码如何变的容易 一.总结 一句话总结:(结构清晰之后构建页面就变得超级容易了)(多做多用一下子就熟了) 1.文章显示页 ...

  5. m_Orchestrate learning system---三十二、数据库字段判断为空时容易出现问题,如何从根本上解决这个问题

    m_Orchestrate learning system---三十二.数据库字段判断为空时容易出现问题,如何从根本上解决这个问题 一.总结 一句话总结:字段禁止为空,设置默认值0即可 禁止 空 默认 ...

  6. m_Orchestrate learning system---三十五、php数据和js数据的解耦:php数据(php代码)不要放到js代码中

    m_Orchestrate learning system---三十五.php数据和js数据的解耦:php数据(php代码)不要放到js代码中 一.总结 一句话总结:也就是以html为中介,用html ...

  7. m_Orchestrate learning system---三十四、使用重定义了$的插件的时候最容易出现的问题是什么

    m_Orchestrate learning system---三十四.使用重定义了$的插件的时候最容易出现的问题是什么 一.总结 一句话总结:如下面这段代码,定义了$的值,还是会习惯性的把$当成jQ ...

  8. m_Orchestrate learning system---二十九、什么情况下用数据库做配置字段,什么情况下用配置文件做配置

    m_Orchestrate learning system---二十九.什么情况下用数据库做配置字段,什么情况下用配置文件做配置 一.总结 一句话总结: 配置文件 开发人员 重置 数据库 非开发人员 ...

  9. m_Orchestrate learning system---二十五、复制类的时候最容易出现的错误是什么

    m_Orchestrate learning system---二十五.复制类的时候最容易出现的错误是什么 一.总结 一句话总结:命名空间错误导致Analyze类虽然继承了Base类,但是没有执行里面 ...

随机推荐

  1. 编写函数int count_number_string(char str[])和函数int maxnum_string(char str[])

    题目如图: 这里不再赘述 代码: //字符串中统计与查询 //杨鑫 #include <stdio.h> #include <stdlib.h> #include <st ...

  2. Swift-UITextField用法

    文本框的创建,如下几种方式: UITextBorderStyle.None:无边框 UITextBorderStyle.Line:直线边框 UITextBorderStyle.RoundedRect: ...

  3. 百度开源其NLP主题模型工具包,文本分类等场景可直接使用L——LDA进行主题选择本质就是降维,然后用于推荐或者分类

    2017年7月4日,百度开源了一款主题模型项目,名曰:Familia. InfoQ记者第一时间联系到百度Familia项目负责人姜迪并对他进行采访,在本文中,他将为我们解析Familia项目的技术细节 ...

  4. 百度ai和图灵123实现简单的语音对话

    百度ai和图灵123实现简单的语音对话

  5. SVG实现波浪效果

    SVG实现波浪效果 svg path:C 贝塞尔曲线绘制波浪形状   A 绘制圆弧形 svg animate:制作波浪动画,为了波浪动画效果自然,设置values关键点  attributeName: ...

  6. com.sun.jdi.internalException:Unexpected JDWP Error:103////Method threw 'java.lang.IllegalArgumentEx

    retrofit2+RxJava2 的一些坑 今天开发新项目,本着积极向上的学习态度,经过多番考虑我决定使用retrofit2 + RxJava2来做为我的网络请求......神说:你的想法非常好 先 ...

  7. Typescript 模拟实现 多继承

    class Animal{ eat():void{ alert("animal eat"); } } class Mamal extends Animal{ breathe() : ...

  8. 对ListView的Item子控件监听并跳转页面

    public class MyAdapteforOwner extends BaseAdapter{ List<OwnerDevice>datas; private Context con ...

  9. mysql5.5碰到的type= MyISAM报错问题

    最近把mysql升级到5.5版本,发现type= MyISAM报错,网上查了一下原来MYSQL5.5.x 版本 不支持 TYPE=MyISAM  这样的语句了!!! MYSQL语句写法 TYPE=My ...

  10. JSP Java服务器页面

    大家好!好久不见!今日我们开始学习JSP了,一些记录基础性的知识在这里与大家分享. 先说下URL(Uniform Resource Locator 统一资源定位符). URL包括传输协议(http:/ ...