• 关于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数据库的驱动.

    • 驱动类: ThinkDbDriver; 是关于数据库的操作类:

    • 有两个成员方法, 名称很接近, 要注意区分: 一个是 数据库驱动类: Driver子类 Mysql.class.php类 的 : getTables($dbName=''), 另一个是: Model 类的 成员方法getFields($tableName);

    • 而在 Think/Model.class.php中有 getField()方法用来 获取字段值或字段列.

    • 模型类有一个成员就是 数据库$db 来做链接

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

    关于ajax的错误, 可能有多种原因:

    1. 要 通过查看: 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 注册.

    关于 select2的使用, 参考: https://select2.org/getting-started/basic-usage

  • 相关阅读:
    一个完善的ActiveX Web控件教程
    用ATL开发和部署ActiveX网页控件
    非IE内核浏览器支持activex插件
    OCX控件在IE中无法侦测到键盘消息( MFC ActiveX Control in IE Doesn't Detect Keystrokes)
    CImageList使用简要说明
    VC,一条会被鼠标移动的直线
    Java NIO学习笔记之基本概念
    netty源码分析
    如何绕过验证码方式总结
    解决Eclipse 启动后总是Building WorkSpace(sleeping)
  • 原文地址:https://www.cnblogs.com/bkylee/p/10247853.html
Copyright © 2020-2023  润新知