• m_Orchestrate learning system---三十一、模板和需求的关系


    m_Orchestrate learning system---三十一、模板和需求的关系

    一、总结

    一句话总结:模板为了适应广大用户,有很多功能样式,但是,你需要的只是部分,所以删掉不需要的,如果有需要,需要的时候再加上

    删 需

    1、bootstrap-switch(checkbox)怎么让switch在on的状态下传递值1过去控制器?

    switch value 1

    只需要将switch的value设置为1即可

    因为thinkphp里面的checkbox的机制是选中才传值过去,不选中是不会传值的

    就算switch的值设置为1,不选中的时候还是没有办法传递值过去

    2、树形结构的上下级选中的js代码?

    checkbox-parent checkbox-child dataid
     1 <script type="text/javascript">
     2     /* 权限配置 */
     3     $(function () {
     4         //动态选择框,上下级选中状态变化
     5         $('input.checkbox-parent').on('change', function () {
     6             var dataid = $(this).attr("dataid");
     7             $('input[dataid^=' + dataid + ']').prop('checked', $(this).is(':checked'));
     8         });
     9         $('input.checkbox-child').on('change', function () {
    10             var dataid = $(this).attr("dataid");
    11             dataid = dataid.substring(0, dataid.lastIndexOf("-"));
    12             var parent = $('input[dataid=' + dataid + ']');
    13             if ($(this).is(':checked')) {
    14                 parent.prop('checked', true);
    15                 //循环到顶级
    16                 while (dataid.lastIndexOf("-") != 2) {
    17                     dataid = dataid.substring(0, dataid.lastIndexOf("-"));
    18                     parent = $('input[dataid=' + dataid + ']');
    19                     parent.prop('checked', true);
    20                 }
    21             } else {
    22                 //父级
    23                 if ($('input[dataid^=' + dataid + '-]:checked').length == 0) {
    24                     parent.prop('checked', false);
    25                     //循环到顶级
    26                     while (dataid.lastIndexOf("-") != 2) {
    27                         dataid = dataid.substring(0, dataid.lastIndexOf("-"));
    28                         parent = $('input[dataid=' + dataid + ']');
    29                         if ($('input[dataid^=' + dataid + '-]:checked').length == 0) {
    30                             parent.prop('checked', false);
    31                         }
    32                     }
    33                 }
    34             }
    35         });
    36     });
    37 </script>

    3、Auth权限管理规则无限级分类权限组选择权限的树形结构操作中,获取祖先id代码?

    静态数组

    注意代码里面的静态数组已经清空静态数组的操作

    算法操作的思路为:從孩子id開始,通過遞歸一直找到所有祖先,並且返回

    算法应用的场景为:规则格式化函数中

     1     //最後一個字段true的作用是為了清空下面的靜態數組
     2     public static function getparentid($authRuleId){
     3         $AuthRuleRes=db('auth_rule')->select();
     4         return self::_getparentid($AuthRuleRes,$authRuleId,True);
     5     }
     6 
     7     //從孩子id開始,通過遞歸一直找到所有祖先,並且返回
     8     public static function _getparentid($AuthRuleRes,$authRuleId,$clear=False){
     9         static $arr=array();
    10         if($clear){
    11             $arr=array();
    12         }
    13         foreach ($AuthRuleRes as $k => $v) {
    14             if($v['aru_id'] == $authRuleId){
    15                 $arr[]=$v['aru_id'];
    16                 self::_getparentid($AuthRuleRes,$v['aru_pid'],False);
    17             }
    18         }
    19         asort($arr);//父級編號始終比子集編號小
    20         $arrStr=implode('-', $arr);
    21         return $arrStr;//輸出結果為孩子id和祖先id,比如1-6
    22     }

    4、input标签内能否直接套用原生php(input标签<内能否套用<?php ?>)?

    可以
    <input name="rules[]" value="{$authRule.id}"
                                                            <?php $arr=explode(',', $authgroups['rules']); if(in_array($authRule['id'], $arr)){echo 'checked="checked"';} ?>
                                                             dataid="id-{$authRule.dataid}" class="inverted checkbox-parent {if condition="$authRule['level'] neq 0"} checkbox-child {/if} " type="checkbox">

    5、如何判断一个数是否在数组中(php中函数)?

    in_array()
    <input name="rules[]" value="{$authRule.id}" <?php $arr=explode(',', $authgroups['rules']); if(in_array($authRule['id'], $arr)){echo 'checked="checked"';} ?> dataid="id-{$authRule.dataid}" class="inverted checkbox-parent {if condition="$authRule['level'] neq 0"} checkbox-child {/if} " type="checkbox">

    6、php判断字段为空?

    is_null empty isset

    empty

    如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,””、0、”0″、NULL、FALSE、array()、var $var、未定义;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

    • 如果eNULLL e=NULL,它肯定是空,即empty($e)=true;
    • 如果eint e=0,就相对于数字,0代表为零,即empty($e)=true;
    • 如果estring e=”“,相对于字符串,”“就代表为是空,即empty($e)=true;
    • 如果estring e=”0”,相对于字符串,”0“就代表为是零,即empty($e)=true;
    • 如果ebool e=false,相对true,false就代表为空,即empty($e)=true;
    • 如果earray a=array(),相对数组来说,没有元素的数据就为空,即empty($e)=true;

    isset

    如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是false;unset一个变量后,变量被取消了。注意,isset对于NULL值变量,特殊处理。

    is_null

    检测传入值【值,变量,表达式】是否是null,只有一个变量定义了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定义变量传入后会出错!】

    == VS ===

    在有些情况下,推荐使用isset来判断一个变量是否为NULL。
    但是从语义上来说,一个变量”是否已显示初始化“和”是否为NULL“是不同的概念,在某些场景下使用isset是不合适的,比如检查一个函数的返回值是否为NULL。
    此时可以使用”==”和”===“来判断它们是否为NULL。
    对于”==”和”===“,它们直接的区别还是很大。对于”==”,它认同空字符串,0,false都为NULL。而对于”===”,只有一个变量真的为NULL,它才代表NULL。
    另外”===”相对于”isset”来说,性能基本接近,甚至要好点。
    因此综上述,判断一个变量是否为NULL最好的办法就是直接使用”===”,这样就不用在is_null,isset之间犹豫。其实上述的结论也同理于False的判断。

    附录:

    测试代码:

            $data = 0;
            $data1 = '0';
            $data2 = array();
            $data3 = null;
            $data4 = false;
            $data5 = "";

    结果:

    if (!变量)全部为true
    if (isset(变量))全部为true
    if (empty(变量))全部为true
    if (is_null(变量))  只有nulltrue 其他为为false
    if (变量==null) 只有'0'false,其他为true
    if (变量===null) 只有nulltrue,其他false

    7、sm尺寸下占1/6,xs尺寸下占全部如何實現?

    col-sm-2
    col-sm-2
    1 <div class="form-group">
    2     <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
    3 
    4     <div class="col-sm-10">
    5         <input type="email" class="form-control" id="inputEmail3" placeholder="Email">
    6     </div>
    7 </div>

    8、实现任何看到的样式?

    css 查看

    因为都是html,css,所以完全可以查看然后copy样式实现相同的效果,非常简单方便

    9、聚合查找,查找学校拥有的的班级数?

    group
    $school_class=db('school_class')->field('sc_s_id,count(sc_s_id)')->group('sc_s_id')->select();
    dump($school_class);die;

    结果:

    array(3) {
      [0] => array(2) {
        ["sc_s_id"] => int(8)
        ["count(sc_s_id)"] => int(4)
      }
      [1] => array(2) {
        ["sc_s_id"] => int(9)
        ["count(sc_s_id)"] => int(4)
      }
      [2] => array(2) {
        ["sc_s_id"] => int(11)
        ["count(sc_s_id)"] => int(5)
      }
    }

    10、input:file显示样式优化的原理?

    重叠 透明度 size 定位

    显示出来的是button,button和input重叠了,点到button点到了input

    input的透明度是0,input的size是50rem,而且是绝对定位

     1 <div class="fry_file">
     2     <button type="button" class="btn btn-danger btn-sm">
     3         <i class="fa fa-upload"></i> Select images to upload</button>
     4     <input class="fry_file_input" id="doc-form-file" type="file" accept="image/*" name="ep_picture[]" multiple="">
     5 </div>
     6 <div id="file-list"></div>
     7 <!--上傳顯示圖片的js-->
     8 <script>
     9     $(function() {
    10         $('#doc-form-file').on('change', function() {
    11             var fileNames = '';
    12             $.each(this.files, function() {
    13                 fileNames += '<span class="badge">' + this.name + '</span> ';
    14             });
    15             $('#file-list').html(fileNames);
    16         });
    17     });
    18 </script>
    19 <!--END 上傳顯示圖片的js-->
    1 /*===================== input_file顯示樣式 =====================*/
    2 .fry_file{
    3     position: relative;overflow: hidden;margin-bottom: 1.5rem;
    4 }
    5 .fry_file .fry_file_input{
    6     position: absolute;left: 0;top: 0;z-index: 1;width: 100%;opacity: 0;cursor: pointer;font-size: 50rem;
    7 }

    二、内容在总结中

     
  • 相关阅读:
    Markdown语法
    简易银行管理系统
    登录sql sever
    MainActivity中R为红色
    PLC STL any数据类型
    Oracle ORA-12541,ORA-12514错误
    Myeclispe下struts-config.xml文件无法图形界面打开
    SSH报错
    Myeclispe 代码自动补全
    Mac下多个jdk自由切换
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10056538.html
Copyright © 2020-2023  润新知