其实二级联动下拉选择框很简单的, 参考: https://www.cnblogs.com/zhangmiaomiao/p/6013533.html

==============

关于$.each和 $().each()的区别

  • 前者可以遍历任何对象或数组, 后者只能遍历jquery的对象数组;

  • 后者由于已经明确指出了被遍历的对象, 因此,each后面的参数就只有一个, 即回调函数了,而前者由于没有指明被遍历的对象,所以第一个参数是 被遍历的数组或对象,第二个参数才是回调函数

  • 既然是遍历,在后面的callback函数中的参数,就是直接、已经从被遍历的对象、数组中取出来的子元素了,不再是原来的对象或数组

  • 如果是遍历数组, 则回调函数中的第一个参数是元素的下标索引数字,从0开始, 比如: 0,1,2...第二个参数是数组元素的值; 如果是遍历的对象,比如: {name:‘jack’,age:20,address:‘some place'} 则回调函数中的第一个参数不再是下标数字了,(对象没有下标的概念)表示的是 对象中成员变量的名称即: mem_name, 比如:name, age, address.第二个参数是成员变量的值,比如: jack,20,...

  • 这个遍历中, 类似for或 while结构, 但是循环的控制, 不再是用break或 continue, 而是用 return false=break,或 return true=continue来控制。

<script>
var arr=[1,3,5];
var obj={name: 'jack', age: 20, address: 'Street Lincon'};
$.each(arr, function(i, x){
alert("this is " +i +" element and value is: " + x);
});
$.each(obj, function(mem_name, mem_value){
alert("this is '" + mem_name +"' element and value is: " + mem_value);
});
</script>

ajax中的 $.get(), 和 $.getJson()的区别?

其实两者都是差不多的,只是前者由于没有指明服务器返回数据的类型,所以要在最后一个参数中指明’json’,而后一个函数由于已经明确说了 getJson, 所以就不用写返回类型了, 最多就是三个参数。

** jquery中的val函数,是一个专门的函数,就是用来获取表单中各种输入控件的值。比如select选择框的值:$('select').val() **

$(...).remove和empty的区别?

$(...).remove从字面上的意思,就可以知道, 它是要 (从dom树节点上)删除 被匹配的元素(集合)本身!

$(...).empty, 被匹配的元素,本身不会被删除,只是会清空(删除)它的所有子节点。

同时,要注意, 很多jquery函数的使用方法,比如: $('...').func_name(...)本身可以不带参数, 那么所有被匹配的元素节点都要执行func_name的动作, 也可以在func_name中 指定 过滤选择器, 那么就只是从 匹配元素集 中 再次选择过滤一次, 然后执行动作。

=======================

jquery中的方法(函数)调用, 是要传递一个参数, 比如:change等, 函数参数不能是 一个语句. 但是可以是 一个 匿名函数: $('select').change(funciton(){...} );

jquery中如何判断一个元素是否显示出来了? (是否存在?) 使用 is 函数 $('selector').is(":visible");

===============

jquery中的事件 和 dom元素的事件的 区别?

  • dom元素绑定事件的时候, 原生态的用onclick之类的.
  • 而jquery中的绑定事件, 用的是 click函数 注意此时就不再加on了.

事件和方法的区别? 再次说一下:

  • 方法是 调用的时候, 马上就执行!
  • 而事件是一种伺服机制, 写上事件函数的时候, 函数并不会马上执行, 只有当相应的事件发生时, 函数才会执行. 要注意, jquery中的 click() 是事件而不是马上就会调用的方法!

jquery中的is函数非常重要: is(selector|obj|element|function)

is函数的参数 可以有4种:

  • selector, 判断前面的对象, 是不是 符合 参数指定的 选择器(基本上是 冒号选择器), 可以是 所有的选择器, 比如 :visible, :hidden, :input等等
  • obj, 是一个jquery对象
  • 元素, 判断是不是一个dom元素
  • 函数: 当对每个循环元素进行is 判断的时候, 不是为了 判断这个对象是什么, 而是要 判断 某个 事实, 某种情况的时候, 就可以 使用 function...., 然后在function中 通过return 返回false或true...

### jquery中的选择器, 有很大一类是 冒号选择器(具有 判断 性质的 false/true性质的) 选择器, 除了三种: 基本选择器(类/id/元素) + 层级选择器 + 属性[] 选择器之外, 其他的都是冒号选择器. 也就是 :伪类选择器

data-toggle 和datat-target作用

toggle是切换的, 表示 该元素 要去控制什么动作,

target是目标, 表示该元素控制的 是哪个目标的 动作

比如 li或 a, 的属性data-toggle是控制其他元素的collapse切换动作. 那么是控制 哪个元素的 collapse动作呢, 通过在 li/a 中指定 data-target来确定

所以 被控制的div 必须要有 collapse 类样式, 而其中的 in 类样式, 表示 进入 打开的意思, 在初始的时候, 是折叠的还是显示的.

折叠可以是针对单个的div, 也可以是 一组/多个div对象的相互折叠, 这个就是 手风琴/折叠面板组, 这个时候, 就要指定每个可折叠 div的 父元素 data-parent.

easyui中 , 要使用图标, 采用的样式类是 iconCls, 这个是通用的, 在整个easyui中都是这样应用的: 在tabs标签组中, 要只是显示标签title, 不要 标签后面的条块(背景) 就使用 选项: plain: true.

===========================

mysql的describe命令

  • mysql中的命令 通常没有省略的, 不可以省略, 是 完整的 动词;
  • describe 后面直接跟 "表名table_name", 不需要 关键字 table
  • describe是 "show columns from .." 的简写

**php中的变量定义: **

= 凡是在$ 符号后面紧跟一个字符串, 就认为是一个php变量;

= php不像c语言, 不支持 给变量: 只定义 不赋值, 赋值初始化的时候, 就是给变量定义了

= php支持 "可变变量" 即: 两个$ $$var 变量的值, 是另一个变量的名字

= 不能像C, javascript等语言一样, 在一行内定义多个 变量, 只能一行定义一个 变量! 即$a=1,$b =2 ; 是错误的

在tp中引入js和css文件

不再使用link和script标签, 直接使用load标签href属性, load标签会自动根据href文件的扩展名来判断类型, 而js和 css是load标签的别名, 语义更清晰.

注意css中 表示 层级 关系 的 几个单词的区别

parent和 child 是父母 和 子女的意思: child 除了小孩这种 广义的泛指之外, 还表示 "自己的子女"!! 所以表示 父子/父母和子女, 不用father/son, 而是用 parent 和 child

ancestor & decendant是 祖先 和 后代/后裔的关系, 不一定是 父母/子女这种直接一代的关系, 可以 所有的 隔了多代的关系.

previ+Next 表示 上一个和下一个, 就是它们之间必须是紧挨着的(当然,而且它们的层级是一样的, 都有共同的父辈parent)

prev~siblings, 表示的是 A元素 后面的 所有同辈, 在层级上是一样的, 都有相同的parent, 但是它们的顺序不一定是紧挨着的. 所以 ~sibling是包含+的, + 是~siblings的特例

jquery的文档说得很清楚, 表示层级关系的就只有这四种:

A B 表示 祖先 子孙 (包括子辈和孙辈...)

A>B表示 父母和子女

A+B表示A后面的 紧挨着的兄弟元素;

A~B表示 A后面的 同辈元素(不一定是紧挨着的)

需要注意的是, 在所有的 层级关系中, 最后选出来的 元素, (样式应用的对像是 B , 不会应用的A元素上) : 都 "落脚于" 后面的那个元素 B 上, 所有的 B元素 都是 A元素 的位置之后的 , 即:都表示: A 后面的 元素B 将要应用的样式!  因为这里使用的是 Prev (这个Prev是前面的, 就表明了它们之间的 在位置上 的 先后关系! ) + 和 ~ 的兄弟元素和 同辈元素 是不包括该元素 前面的 元素的!

所以 使用 加号表示兄弟元素 , 可以起到一些特殊的 选择作用, 比如: <style> li+li{....} 表示 li元素后面 的紧邻 那个li元素将要应用的样式 通常 在多个相同元素中使用 加号 , 会让中间元素应用样式, 但是 第一个元素和最后一个元素 不会被 应用样式, 因为第一个元素之前没有其他元素, 最后一个元素之后没有兄弟元素.

要选出 第一个 子元素. 不能使用 层级 选择符. 因为层级选择符 选出的都是 集合. 是符号条件的所有元素. 所以 要选择第一个 或第一个子元素 , 要使用 冒号选择器(也叫 伪类选择器, 因为 伪类 就是用冒号来表示的 比如 :class) 即 : :first, :first-child, :last-child

======================

css中的 float和position的区别?

  • bfc( "谐音:不服从") 表示的是 块级元素 格式化上下文, 表示 html中元素的排列顺序, 总是 块级元素从上到下, inline元素 从左到右
  • float是浮动, 是 属于排版 "图文混排"的语义,
  • position是真正的定位, 要实现 一个元素 b 相对于另一个元素A位置内 定位, 必须要求 父元素 A必须为 position: relative , 不能是static.
  • 正因为, 它们都能在一定程度上 实现相同的效果, 所以 容易混淆 它们的区别, 在于 是否从 文档流中 脱离.

    但是: 不管是 float 还是 position, 都不能 忽略 位于 它们前面的 块级元素, 比如h2, div等 , 这些div或 h2等块级元素由于 要占据 整个整行, 会将它们 挤下来... 因此 就 只能排列在这些块级元素的下面!

=================

要清楚php进行 json编码的规则:

  • 如果是 一维数组(没有索引名称的), 则直接编码为 json 数组 , 比如: [1, 2, 3, 'name', true]
  • 如果是一维数组而且 有索引名称的, 则编码为 json 对象, 其中 索引名称为键名, 比如: {'name': 'jack', 'age': 10, 'addr': 'st2'}
  • 如果是二维索引数组, 则编码为json数组, 同时每个元素为一个json对象 [{'name': 'jack', 'age': 10, 'addr': 'st2'}, {'name2': 'jack', 'age': 10, 'addr': 'st2'}, ...]
  • 如果是单个的数字 或 字符串, 编码后, 还是单个的数字或字符串, 不会改变.

####如何调试 ajax传递到php后台的错误?
- 由于 在调试 ajax传递到后台的时候, 无法看到/甚至无法调试 后台php文件的错误, 所以跟踪发现问题就很困难, 这时, 应该 选择将 ajax的get, 或 post 传递回来的数据 用 console.log (debug_info) 打印出来. 那么在控制台就会看到 php后台出错的错误信息报告
- 最关键的是, 要看到php远程ajax 页面传递回来的是 html错误报告页面, 就要在post或get中将 dataType明确地设置为 "text,或html,或不设(会自动根据http包的mime信息来判断返回数据的类型)", 但是不能设置为 'json'! 因为设置为 json的话, 就看不到错误信息了!
也就是说, 要是怀疑 ajax出错了的话, 就要将dataType返回类型改为 html, 而不能是看不到错误信息的json
![](https://img2018.cnblogs.com/blog/821299/201812/821299-20181222174444183-858522871.png)

  • 可以在调试时, 开始不忙传递数据进去, 看最简单的情况下, 能不能ajax成功, 就可以看到 是否将ajax请求传递到 后台页面了

function name must be a string? 是说 当我们错误地把 全局变量 , 比如 $_POST, $_COOKIE,$_GET等的元素, 本来应该是 中括号的, 却错误地写成了小括号, 比如:$_post('name') 那么: 因为后面有括号, 首先把它当做是一个函数 调用, 而前面的 $_post 又是以$开头的, 就认为是一个变量, 而变量是不能做函数名的, 必须是用字符串来做函数名

在ajax 的后台处理页面php中, 确实是用 $_POST['name']之类的 来接收 ajax传递过去的数据的, (当然ajax type是post的). 是能够正确的取到的, 如果要查看, 或怀疑数据没有传递过去, 或传递有问题, 你可以直接将 接收到的数据 直接组装成 json结果反回来在 js 控制台查看.

传递的数据 , 确实是写成 js 键值对 对象 形式!

为什么在$.ajax应用中, 出现错误提示: jquery.js的第2行, TypeError: invalid in operand a?

  • 这是由于在 ajax应用中,对从php返回的json数据进行处理时, 调用了jquery中的函数each函数, 而each函数要求的 "in"operand 输入操作数, 必须是一个 javascript的数组或对象.但是 从php返回的json数据 在js看来,只是一个 字符串!! 不是数组或对象. 所以会提示 TypeError
  • 而这里调用的 each函数, 是jquery.js中的一个函数, 正好位于jquery.js文件中的第二行...
  • 解决方法是: 将这个ajax返回的"字面上是对象" 的字符串, 转换为真正的js 数组或对象,方法是: 用javascript语言本身提供的 "JSON"对象的相关方法: JSON.parse(json_format_string) => 得到js的数组或对象 , 而 JSON.stringify(js字母对象) => Json格式的字符串
// javascript中的ajax语句

    $.post('/index.php/Home/Index/ajaxHand',{'zyb':zyb,'nj':nj},function(ajaxRet){

        .....

       var res = JSON.parse(ajaxRet);

        console.log('返回结果:'+res);
}); // 控制器中的方法 ajaxHand public function ajaxHand(){
$zyb = $_POST('zyb');
$nj = $_POST['nj']; $Class = M('class');
$res = $Class -> where(array('zyb'=>$zyb, 'nj'=>$nj)) -> getField('bj',true);
echo json_encode($res);
}

localhost 和 127.0.0.1的区别? 参考 https://blog.csdn.net/JkunZhang/article/details/6066158

  • localhost叫 本地 服务器, 而 127.0.0.1 是本机 服务器ip地址.一个叫 本地, 一个叫 本机, 两者通过host文件进行 转换.
  • localhost 不经过网卡, 不受防火墙和网卡ip地址等的限制; 127.0.0.1 是一个ip地址, 要经过网卡, 要受防火墙和网络地址的限制;
  • localhost不会占用网络资源? 127.0.0.1 和其他ip地址的区别是, 前者 只能通过本机访问, 后机器的本机ip地址 可以从 其他机器访问;
  • 建议通过localhost来访问, 因为 使用 localhost来访问, 是 以当前 本地用户的(控制台的用户) 身份来访问的; 而ip地址访问是以 访客 身份来访问的.
  • 在windows下 localhost 的访问协议 是 TCP/ip 而linux下是 通过 unix socket 套接字来访问的. 所以 有时候会出现 localhost不能访问, 而127地址可以访问的现象,但是 win上没有这种情况.

==========================================

mysql中的 mysql.user表中存放的是 当前 数据库中 有哪些用户, 以及它们的权限等信息, 而 information_schema数据库是存放的当前 运行的 数据库/表的 信息, 是从其他数据库(主要是mysql数据库)中提取信息的 "视图", 所以 很多表 没有 真实的/对应的实体文件. 其中的 information_schema. user_privileges表是存放的当前 内存中, 已经运行的 用户信息和权限.

  • 由于 mysql中 有一个 默认的 普通用户, 是 匿名用户, 是 空'' 用户 : ''@'localhost' 是 很低的用户, 它只有 usage的功能和操作 (只能操作 test数据库) , 没有 grantable, 所以 只能用来 操作 普通的用户自己的数据库, 不能操作 其他系统 数据库. 包括 一般不能创建 新的 数据库等.

#### 当在 url地址后 使用get方法传递参数时, 一定要注意 name=value 传值对中的值, 不能再加 (单/双)引号了, 因为这个值 会按原样 raw的 样子 , 原原本本的赋值给 接受变量. 从而使得 接受到的值带有 多余的 引号, 引起 后面的数据库查询的时候, 出错!

Ipan笔记-2的更多相关文章

  1. ipan笔记

    // 对于mysql来说, 如果字段没有设置其 default值, 则会自动 设置 default值为null.同理没有设置not null, 则会自动允许null =yes // create ta ...

  2. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  5. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  6. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  7. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

  8. springMVC学习笔记--知识点总结1

    以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...

  9. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

随机推荐

  1. markdown 基本语法(转载)

    最近感觉一直使用富文本编辑器写东西,感觉有点烦,所以就试着学习了一下简单的markdown编辑器的使用 原文地址:http://www.jianshu.com/p/815788f4b01d markd ...

  2. Git查看两个版本之间修改了哪些文件

    gdiff 63e3b647d55fcc643e793e650c893be8601719b1 548cdaf01dbc2f08d1ca0b697a24afe512b75a2f --stat git l ...

  3. POI操作Excel详解,读取xls和xlsx格式的文件

    package org.ian.webutil;   import java.io.File; import java.io.FileInputStream; import java.io.FileN ...

  4. 印刷行业合版BOM全阶维护示例

    先看看基本界面: 在上图中,左侧为产品的整个树形图 目前产品有4种状态: 1.普通产品,颜色为黑色 2.需要拼版的产品,颜色为绿色 3.拼版的产品(例如印刷件),基准件为红色 4.拼版的产品,非基准件 ...

  5. 如何在Ubuntu上安装腾讯QQ

    首先QQ国际版下载连接:http://pan.baidu.com/s/1sj7i6BF 安装步骤: 一:安装依赖库 在终端输入:sudo apt-get install  libgtk2.0-0:i3 ...

  6. The way to unwind the stack on Linux EABI

    I. probe the stack frame structure The original idea is to unwind the function call stack according ...

  7. Feign 重试解析

    Spring cloud Feign 在restful 调用失败后,会进行重试.在没有到达指定重试次数,会一直重试. @Override public Object invoke(Object[] a ...

  8. VMware Workstation下ubuntu虚拟机无法上网连不上网络解决

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  9. 分析Hello2代码

    代码如下String username = request.getParameter("username"); if (username != null && us ...

  10. 实验二《Java面向对象程序设计》的一点说明

    实验二<Java面向对象程序设计>的一点说明 本周的实验要求是: 完成实验二<Java面向对象程序设计>中的内容 其中Eclipse相关的内容参考Intellj IDEA 简易 ...