关于php下的ajax赋值传值的调试
在tp中, 在js中也可以使用 模板变量替换(比如__PUBLIC__)和 模板函数调用(比如: {:U('..')}) 等. 但是 只有直接放在 相应的 模板文件中, 只有放在index.html之类的文件中才能使用模板变量和函数调用, 才能有效, 如果javascript 代码, 放在单独的/另外的 js文件中, 通过 script src的方式引入, 那么,在js文件中, 就不能使用模板变量替换和 模板函数了. 因为这些都将无效! 所以, 如果在另外的/单独的文件中, 使用 ajax的时候, 目标文件就不能使用 U方法了, 而是必须写完整的路径了, 比如: '/index.php/Home/Index/ajaxHandler'
关于 模型类Model 和 数据库类DB 和 数据库驱动类Driver的关系?
-
Library/Think/Db/Driver/Mysql.class.php是mysql数据库的驱动.
-
驱动类: Think\Db\Driver; 是关于数据库的操作类:
-
有两个成员方法, 名称很接近, 要注意区分: 一个是 数据库驱动类: Driver子类 Mysql.class.php类 的 : getTables(\(dbName=''), 另一个是: Model 类的 成员方法getFields(\)tableName);
-
而在 Think/Model.class.php中有 getField()方法用来 获取字段值或字段列.
-
模型类有一个成员就是 数据库$db 来做链接
====================
关于ajax的错误, 可能有多种原因:
- 要 通过查看: ff的调试控制台 的"console/debugger/Network" 等 多个标签的 信息 , 查找原因, 可能是
-
$.post 的ajax的请求地址错误: 比如 在分离的js文件中 使用 {:U('...')} 地址: 403 forbidden, 301 not found 等原因
-
分离的js文件中, ajax请求的地址写成完整的地址, 可以是 pathinfo格式的, 操作名最后的.html可以要, 也可以不加.
-
对ajax的调试 , 要遵从 从简到繁的原则: 在 ajax处理函数中, 先只写最基本的输出返回, 来测试请求地址是否正确; 然后只输出一个简单的 字符串, 来判断返回是否正确; 最后查看结果是否能够输出.
-
可能是返回结果的格式错误
-
甚至是 后台处理函数 本身的 错误也可能导致 ajax的失败!
-
其中很重要的一点是, 看ajax 接收的值是否正确, 于是 在ajaxHandler函数中 只是 { echo $foo = $_POST['foo']; } 看接收到 的结果是否正确.
然后在 $.post的 回调函数中, 什么都不做, 只是 console.log(ret) 查看返回的值...
=================
#### 谁说在win下 不区分大小写?! 抱有这样的思想的人,是要吃大亏的, 比如javascript中就是 严格区分大小写的, 比如在js 中 你写 $('#somefoo').val(), 而你实际的节点id是 id='someFoo', 那么你将获取不到节点的值. 你在console.log控制台 (会显示在 哪一行 有输出) 上将会看到 输出的值为 空 (什么都没有) . 就有这么一个错误折腾了将近几个小时!折扣的说法: discount =off 所以说 打多少折扣: you can get/receive 10% off = discount
10%: ten percent (of)
yuan: 是单复数一样的, 所以 没有 yuans 的说法。 比如: ten yuan、 five thousand and five hundred fifty-five yuan.
**虽然如此, 但是: 有三个词语: nonetheless, nevertheless 和 however: **
none-the-less主要是从 量上/程度 上 来表示 转折: none表示 没有
never-the-less 主要是从时间上 来表示转折: never表示 从来没有.
除了在时间 /程度上有 细微的差别外 , 两者可以互换: 放在句首, 句中, 都要加 逗号comma, 而放在 句末可以不加逗号.
开发过程中, 不强迫: 英文和拼音 可以结合,都使用; 独立/外接文件和 内联样式都可以使用; 质量70-80就好了
先期开发的时候, 一定不要用 css和额外的(除必须的功能实现之外的)js, 先写后台php函数/类/文件 和数据库, 因为这两部分是不需要 界面美化和优化的. 只有当所有的 功能都实现了后, 再来美化/优化 前端的内容. 因为 前端 界面的美化和优化 是 无穷无尽的. 是 无止境的. 这一点 非常重要!!
**注册工具regsvr32 **
regsvr32: reg- server -system32: 是指 注册 服务器( 有这样的 过时的命令: regserver) 到 system32 , 所以命令的名称是: regsvr32 而不是 regsrv32;
而regasm: reg-asm 是注册asm的.net服务
regsvr32 是注册 dll和 active X 的工具, 有/i选项 注册 和 /u 卸载/反注册 的功能.
snip是剪刀, "动词: 剪" 的意思
所以 snipping tool就是 剪刀工具, 就是 win的 截图工具, 这个截图工具的 图标就是一个 剪刀!
为什么 在有些 ghost版中, 不能使用 win的 截图工具呢?
- 是因为她精简了 snippingtool.exe的功能, 具体说就是删除 了 这个工具需要的两个dll库文件, 一个是 tpcps.dll 一个是 inkobj.dll
- 使用
tasklist /m tpcps.dll , tasklist /m inkobj.dll
可以清楚地看到 是 snippingtool.exe这个进程在使用它们 - 所以 , 如果不能使用 snippingtool的话, 检查system32是有有这两个dll文件, 如果没有就去下载并用 regsvr32 注册.