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、循環里面的判斷正誤:判斷正確是要返回的,判斷錯誤不能立即返回,如果錯誤要所有的全部判斷出來再返回
?
?
?
二、內容在總結中
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的m_Orchestrate learning system---二十、如何写代码不容易犯错的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GO语言eclipse开发环境搭建
- 下一篇: 2018最新版 手机号、验证码正则表达式