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. Linux以下基于TCP多线程聊天室(client)

    不怎么会弄这个博客的排版,就直接将代码附上: 主要是使用多线程去等待接受数据和发送数据.以下是client的代码: tcpsed.h文件 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...

  2. jquery中命名冲突问题

    例如用jq代替$符号 var jq = $.noConflict()

  3. NSURLSession简介

    NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的.在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作.注意, ...

  4. JavaScript DOM编程艺术(第2版)学习笔记2(4~6章应用实例)

    本书的第4章使用第3章学到的操作DOM的方法和属性写了一个展示图片的网页,并在第5,6章对代码进行了优化. 第一版,搭建网页的静态结构,包括一级标题<h1>,无序列表清单<ul> ...

  5. SQL Server-简单查询语句,疑惑篇

      前言 对于一些原理性文章园中已有大量的文章尤其是关于索引这一块,我也是花费大量时间去学习,对于了解索引原理对于后续理解查询计划和性能调优有很大的帮助,而我们只是一些内容进行概括和总结,这一节我们开 ...

  6. 性能优化实战-join与where条件执行顺序

    昨天经历了一场非常痛苦的性能调优过程,但是收获也是刻骨铭心的,感觉对sql引擎的原理有了进一步认识. 问题起源于测试人员测一个多条件检索的性能时,发现按某个条件查询会特别慢.对应的sql语句简化为: ...

  7. here.less

    <html><head><title>Test Less</title><link rel="stylesheet/less" ...

  8. RabbitMQ基础学习笔记(C#代码示例)

    一.定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发).MQ是一种应用程序对应用程序的通信方法.应用程序通过读写入队和出队的消息来通信,无需专 ...

  9. python字符串、列表、元组

    字符串的常用方法: name.count('h')统计h在name中出现的次数 name.find('h')查找h的索引 '?'.join(name)使用问好拼接 name.encode('gb231 ...

  10. ZBrush通过显示与隐藏得到子物体

    在ZBrush®中得到子物体的方法有很多,本文将为大家介绍一种新的创建子物体的方法,通过显示和隐藏得到子物. ZBrush 4R8中文版下载:http://wm.makeding.com/iclk/? ...