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、循环里面的判断正误:判断正确是要返回的,判断错误不能立即返回,如果错误要所有的全部判断出来再返回

 

 

 

二、内容在总结中

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/8990101.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值