第1部分:Web应用基础知识 3
第1章 理解Web的工作方式 3
1.1 HTML和WWW简史 4
1.2 创建Web内容 4
1.3 理解Web内容递送 5
1.4 选择Web托管提供商 7
1.5 利用多种Web浏览器执行测试 8
1.6 创建一个示例文件 9
1.7 使用FTP传输文件 10
1.7.1 选择FTP客户端 10
1.7.2 使用FTP客户端 11
1.8 了解在Web服务器上放置文件的位置 13
1.8.1 基本的文件管理 14
1.8.2 使用索引页面 15
1.9 小结 16
1.10 问与答 16
1.11 测验 17
1.11.1 问题 17
1.11.2 解答 17
1.11.3 练习 17
第2章 构造HTML文档 19
2.1 从一个简单的Web页面开始 20
2.2 每个Web页面都必须具有的HTML标签 22
2.3 在Web页面中使用超链接 24
2.3.1 使用锚点链接到一个页面内部 25
2.3.2 链接到外部Web内容 25
2.3.3 链接到一个E-mail地址 26
2.4 利用段落和换行符组织页面 26
2.5 利用标题组织内容 28
窥探其他设计师的页面? 30
2.6 理解语义元素 30
2.6.1 以多种方式使用<header>元素 35
2.6.2 理解<section>元素 36
2.6.3 正确地使用<article>元素 37
2.6.4 实现<nav>元素 37
2.6.5 何时使用<aside>元素 38
2.6.6 有效地使用<footer>元素 39
2.7 CSS的工作方式 40
2.8 基本的样式表 41
2.9 CSS样式的基础知识 46
2.9.1 基本的布局属性 46
2.9.2 基本的格式化属性 47
2.10 使用样式类 49
2.11 使用样式ID 51
2.12 内部样式表和内联样式 52
验证样式表 53
2.13 小结 54
2.14 问与答 55
2.15 测验 56
2.15.1 问题 56
2.15.2 解答 57
2.15.3 练习 57
第3章 理解CSS方框模型和定位 58
3.1 CSS方框模型 59
3.2 详解定位 61
3.3 控制元素的堆叠方式 65
3.4 管理文本流 67
3.5 理解固定布局 67
3.6 理解流动布局 69
3.7 创建固定/流动混合布局 70
3.7.1 从基本的布局结构开始 71
3.7.2 在固定/流动混合布局中定义两栏 72
3.7.3 设置布局的最小宽度 74
3.7.4 在固定/流动混合布局中处理栏高度 74
3.8 考虑响应性Web设计 79
3.9 小结 80
3.10 问与答 80
3.11 测验 81
3.11.1 问题 81
3.11.2 解答 81
3.11.3 练习 81
第4章 理解JavaScript 82
4.1 学习Web脚本编程的基础知识 83
脚本和程序 83
4.2 JavaScript如何适应Web页面 84
4.2.1 使用单独的JavaScript文件 85
4.2.2 使用基本的JavaScript事件 85
4.3 探索JavaScript的能力 86
4.3.1 验证表单 86
4.3.2 特殊效果 86
4.3.3 远程脚本调用(AJAX) 86
4.4 基本概念 87
4.4.1 语句 87
4.4.2 把任务与函数相结合 88
4.4.3 变量 88
4.4.4 了解对象 88
4.4.5 条件语句 89
4.4.6 循环语句 89
4.4.7 事件处理程序 90
4.4.8 首先运行哪个脚本 91
4.5 JavaScript语法规则 92
4.5.1 大小写敏感性 92
4.5.2 变量、对象和函数名称 92
4.5.3 保留字 92
4.5.4 空白 92
4.6 使用注释 93
4.7 关于JavaScript的最佳实践 93
4.8 理解JSON 94
4.9 使用JavaScript控制台调试JavaScript错误 95
4.10 小结 96
4.11 问与答 96
4.12 测验 97
4.12.1 问题 97
4.12.2 解答 98
4.12.3 练习 98
第5章 PHP简介 99
5.1 PHP是如何与Web服务器协作的 99
5.2 PHP脚本基础 100
5.2.1 开始和结束一个PHP语句块 101
5.2.2 echo语句和print()函数 102
5.2.3 组合HTML和PHP 103
5.2.4 为PHP 代码添加注释 104
5.3 代码块和浏览器输出 104
5.4 小结 107
5.5 问与答 107
5.6 测验 107
5.6.1 问题 107
5.6.2 解答 108
5.6.3 练习 108
第2部分:动态Web站点基础 111
第6章 理解动态Web站点和HTML5应用程序 111
6.1 理解不同类型的脚本 112
6.2 显示随机内容 112
6.3 理解文档对象模型 116
6.4 使用window对象 116
6.5 处理document对象 117
6.5.1 获取关于文档的信息 117
6.5.2 在文档中编写文本 118
6.5.3 使用链接和锚 119
6.6 访问浏览器的历史记录 119
6.7 使用location对象 121
6.8 关于DOM结构的更多知识 122
6.8.1 节点 123
6.8.2 父对象与子对象 123
6.8.3 兄弟对象 123
6.9 处理DOM节点 123
6.9.1 基本的节点属性 123
6.9.2 节点的关系属性 124
6.9.3 文档方法 124
6.9.4 节点方法 125
6.10 创建可定位的元素(图层) 125
利用JavaScript控制定位 126
6.11 隐藏和显示对象 129
6.12 修改页面内的文本 131
6.13 向页面中添加文本 132
6.14 基于用户交互更改图像 134
6.15 提前考虑开发HTML5应用程序 135
6.16 小结 136
6.17 问与答 136
6.18 测验 137
6.18.1 问题 137
6.18.2 解答 137
6.18.3 练习 137
第7章 JavaScript基础:变量、字符串和数组 138
7.1 使用变量 138
7.1.1 选择变量名 139
7.1.2 使用局部变量和全局变量 139
7.1.3 给变量赋值 140
7.2 了解表达式和运算符 141
7.2.1 使用JavaScript运算符 141
7.2.2 运算符优先级 142
7.3 JavaScript中的数据类型 143
7.4 在数据类型之间转换 143
7.5 使用String对象 144
7.5.1 创建String对象 144
7.5.2 赋值 145
7.5.3 计算字符串的长度 146
7.5.4 转换字符串的大小写 146
7.6 处理子串 147
7.6.1 使用字符串的一部分 147
7.6.2 获取单个字符 148
7.6.3 查找子串 148
7.7 使用数值型数组 149
7.7.1 创建数值型数组 149
7.7.2 理解数组长度 149
7.7.3 访问数组元素 150
7.8 使用字符串数组 150
7.8.1 创建字符串数组 150
7.8.2 拆分字符串 151
7.8.3 对字符串数组进行排序 151
7.9 对数值型数组进行排序 151
7.10 小结 154
7.11 问与答 154
7.12 测验 155
7.12.1 问题 155
7.12.2 解答 156
7.12.3 练习 156
第8章 JavaScript基础:函数、对象和流程控制 157
8.1 使用函数 158
8.1.1 定义函数 158
8.1.2 调用函数 159
8.1.3 返回值 161
8.2 对象简介 163
8.2.1 创建对象 163
8.2.2 理解方法 163
8.3 使用对象简化脚本编程 164
8.3.1 定义对象 164
8.3.2 定义对象的方法 165
8.3.3 创建对象的实例 166
8.4 扩展内置对象 168
8.5 使用Math对象 169
8.5.1 四舍五入和截尾 170
8.5.2 生成随机数 170
8.5.3 其他Math方法 170
8.6 使用Math方法 171
8.7 处理Date对象 173
8.7.1 创建Date对象 173
8.7.2 设置Date值 173
8.7.3 读取Date值 174
8.7.4 处理时区 174
8.7.5 在日期格式之间转换 175
8.8 if语句 175
8.8.1 条件运算符 176
8.8.2 利用逻辑运算符把条件结合起来 176
8.8.3 else关健字 177
8.9 使用简写的条件表达式 178
8.10 利用if和else测试多个条件 179
8.10.1 HTML文件 179
8.10.2 JavaScript文件 180
8.11 利用switch使用多个条件 181
8.12 使用for循环 182
8.13 使用while循环 184
8.14 使用do...while循环 185
8.15 使用循环 185
8.15.1 创建无限循环 185
8.15.2 退出循环 186
8.15.3 继续执行循环 186
8.16 遍历对象属性 187
8.17 小结 189
8.18 问与答 190
8.19 测验 190
8.19.1 问题 190
8.19.2 解答 191
8.19.3 练习 191
第9章 理解JavaScript事件处理 192
9.1 理解事件处理程序 192
9.1.1 对象和事件 193
9.1.2 创建事件处理程序 193
9.1.3 用JavaScript定义事件处理程序 194
9.1.4 支持多个事件处理程序 194
9.1.5 使用Event对象 195
9.2 使用鼠标事件 196
9.2.1 移入和移出 196
9.2.2 按下和释放(以及单击) 197
9.3 使用键盘事件 199
9.4 使用load和unload事件 201
9.5 使用click更改<div>的外观 202
9.6 小结 207
9.7 问与答 207
9.8 测验 207
9.8.1 问题 207
9.8.2 解答 208
9.8.3 练习 208
第10章 使用jQuery的基础知识 209
10.1 使用第三方JavaScript库 209
10.2 jQuery应运而生 210
10.3 准备使用jQuery 211
10.4 熟悉$().ready处理程序 212
10.5 选择DOM和CSS内容 213
10.6 操作HTML内容 214
10.6.1 显示和隐藏元素 215
10.6.2 制作元素的动画 216
10.7 结合使用各种方法来创建jQue动画 218
10.8 利用jQuery处理事件 221
10.9 小结 222
10.10 问与答 222
10.11 测验 222
10.11.1 问题 222
10.11.2 解答 223
10.11.3 练习 223
第3部分:提高Web应用程序的层级 227
第11章 AJAX:远程脚本编程 227
11.1 AJAX简介 227
11.1.1 JavaScript客户(前端) 228
11.1.2 服务器端脚本(后端) 228
11.1.3 XML 229
11.1.4 流行的AJAX示例 229
11.2 使用XMLHttpRequest 229
11.2.1 创建请求 230
11.2.2 打开URL 230
11.2.3 发送请求 230
11.2.4 等待响应 230
11.2.5 解释响应数据 231
11.3 创建简单的AJAX库 231
11.3.1 ajaxRequest函数 232
11.3.2 ajaxResponse函数 232
11.3.3 使用库 232
11.4 使用库创建AJAX测验 233
11.4.1 HTML文件 233
11.4.2 XML文件 234
11.4.3 JavaScript文件 234
11.4.4 测试示例 236
11.5 调试基于AJAX的应用程序 236
11.5.1 HTML表单 237
11.5.2 PHP后端 238
11.5.3 JavaScript前端 238
11.5.4 使之工作 240
11.6 将jQuery的内置函数用于AJAX 240
11.7 小结 241
11.8 问与答 241
11.9 测验 242
11.9.1 问题 242
11.9.2 解答 242
11.9.3 练习 242
第12章 PHP基础:变量、字符串和数组 243
12.1 变量 243
12.1.1 全局变量 244
12.1.2 超全局变量 245
12.2 数据类型 245
12.2.1 使用settype()来改变变量的数据类型 247
12.2.2 通过类型转换改变变量的数据类型 248
12.2.3 为何测试类型 250
12.3 操作符和表达式 250
12.3.1 赋值操作符 251
12.3.2 算术操作符 251
12.3.3 连接操作符 252
12.3.4 复合赋值操作符 252
12.3.5 自动增加和减少一个整型变量 253
12.3.6 比较操作符 254
12.3.7 使用逻辑操作符创建复杂的测试表达式 255
12.3.8 操作符优先级 256
12.4 常量 257
预定义常量 258
12.5 理解数组 258
12.6 创建数组 258
12.6.1 创建关联数组 260
12.6.2 创建多维数组 260
12.7 一些和数组相关的函数 262
12.8 小结 263
12.9 问与答 264
12.10 测验 264
12.10.1 问题 264
12.10.2 解答 265
12.10.3 练习 265
第13章 PHP基础:函数、对象和流程控制 266
13.1 调用函数 267
13.2 定义一个函数 268
13.3 从用户定义的函数返回值 270
13.4 理解变量作用域 271
使用global语句访问变量 272
13.5 使用static语句在函数调用之间保存状态 273
13.6 关于参数的更多内容 275
13.6.1 为参设置默认值 275
13.6.2 把变量引用传递给函数 276
13.7 测试函数是否存在 277
13.8 创建一个对象 278
13.8.1 对象的属性 280
13.8.2 对象方法 281
13.8.3 构造方法 283
13.9 对象继承 283
13.10 转换流程 284
13.10.1 if语句 284
13.10.2 使用else子句的if语句 285
13.10.3 使用带有elseif子句的if语句 286
13.10.4 switch语句 287
13.10.5 使用?:运算符 288
13.11 实现循环 289
13.11.1 while语句 289
13.11.2 do...while语句 290
13.11.3 for语句 291
13.11.4 用break语句跳出循环 292
13.11.5 用continue语句跳过迭代 293
13.11.6 嵌套循环 294
13.12 小结 296
13.13 问与答 296
13.14 测验 296
13.14.1 问题 297
13.14.2 解答 297
13.14.3 练习 297
第14章 使用cookie和用户会话 298
14.1 cookie简介 298
14.1.1 深入了解一个cookie 299
14.1.2 访问cookies 299
14.2 设置一个cookie 300
14.3 删除一个cookie 302
14.4 会话函数概览 303
14.5 使用会话变量 304
14.6 销毁会话和重置变量 308
14.7 在一个带有注册用户的环境中使用会话 308
14.7.1 使用注册的用户 309
14.7.2 使用用户偏好 309
14.7.3 理解浏览器中的本地存储和会话存储 309
14.8 小结 310
14.9 问与答 310
14.10 测验 310
14.10.1 问题 311
14.10.2 解答 311
14.10.3 练习 311
第15章 处理基于Web的表单 312
15.1 HTML表单的工作方式 313
15.2 创建表单 313
15.3 接受文本输入 317
15.4 命名各种表单数据 317
15.5 标记各种表单数据 318
15.6 组合表单元素 319
在表单中包括隐藏的数据 319
15.7 探索表单输入控件 320
15.7.1 复选框 320
15.7.2 单选按钮 322
15.7.3 选择列表 323
15.7.4 文本框、文本区及其他输入类型 325
15.8 使用HTML5表单验证 326
15.9 提交表单数据 328
为表单事件使用JavaScript 329
15.10 利用JavaScript访问表单元素 329
显示来自表单的数据 330
15.11 创建一个简单的输入表单 331
15.11.1 使用用户定义数组访问表单输入 332
15.11.2 在单个页面上组合HTML和PHP代码 333
15.12 使用隐藏字段来保存状态 336
15.13 根据表单提交发送邮件 337
15.13.1 mail()函数的系统配置 337
15.13.2 创建表单 338
15.13.3 创建发送邮件的脚本 339
15.14 小结 341
15.15 问与答 342
15.16 测验 342
15.16.1 问题 342
15.16.2 解答 343
15.16.3 练习 343
第4部分:将数据库整合到应用程序中 347
第16章 理解数据库设计过程 347
16.1 良好的数据库设计的重要性 347
16.2 表关系的类型 348
16.2.1 一对一关系 349
16.2.2 一对多关系 349
16.2.3 多对多关系 350
16.3 理解规范化 351
16.3.1 平表带来的问题 351
16.3.2 第一范式 352
16.3.3 第二范式 352
16.3.4 第三范式 353
16.4 遵从设计过程 353
16.5 小结 354
16.6 问与答 355
16.7 测验 355
16.7.1 问题 355
16.7.2 解答 355
16.7.3 练习 355
第17章 SQL基本命令 356
17.1 MySQL数据类型 357
17.1.1 数字数据类型 357
17.1.2 日期和时间类型 358
17.1.3 字符串类型 359
17.2 表的创建语法 360
17.3 使用INSERT命令 360
进一步学习INSERT语句 361
17.4 使用SELECT命令 362
17.4.1 排序SELECT结果 363
17.4.2 限制结果 364
17.5 在查询中使用WHERE 365
17.5.1 在WHERE子句中使用操作符 366
17.5.2 使用LIKE比较字符串 366
17.6 从多个表中查询 367
17.6.1 使用JOIN 369
17.6.2 使用子查询 371
17.7 使用UPDATE命令来修改记录 372
17.7.1 条件式UPDATE 374
17.7.2 在UPDATE中使用已有的列值 375
17.8 使用REPLACE命令 375
17.9 使用DELETE命令 376
条件式DELETE 377
17.10 MySQL中常用的字符串函数 378
17.10.1 长度和连接函数 379
17.10.2 截断和填充函数 381
17.10.3 定位和位置函数 383
17.10.4 子字符串函数 383
17.10.5 字符串修改函数 384
17.11 在MySQL中使用日期和时间函数 386
17.11.1 操作日期 386
17.11.2 操作月份和年份 388
17.11.3 操作周 390
17.11.4 操作小时、分钟和秒 391
17.11.5 使用MySQL格式化日期和时间 392
17.11.6 使用MySQL执行日期算术 394
17.11.7 特殊函数和转换函数 396
17.12 小结 398
17.13 问与答 399
17.14 测验 400
17.14.1 问题 400
17.14.2 解答 400
17.14.3 练习 401
第18章 使用PHP和MySQL交互 402
18.1 MySQL函数和MySQLi函数 402
18.2 使用PHP连接MySQL 402
18.2.1 进行连接 403
18.2.2 执行查询 404
18.2.3 获取错误消息 405
18.3 使用MySQL数据 406
18.3.1 避免SQL注入 406
18.3.2 使用PHP插入数据 407
18.3.3 使用PHP获取数据 409
18.3.4 PHP中其他的MySQL函数 411
18.4 小结 411
18.5 问与答 412
18.6 测验 412
18.6.1 问题 412
18.6.2 解答 412
18.6.3 练习 412
第5部分:应用开发基础 415
第19章 创建一个简单的讨论论坛 415
19.1 设计数据库表 415
19.2 为共同函数创建一个包含文件 416
19.3 创建输入表单和脚本 417
19.4 显示主题列表 420
19.5 显示一个主题中的帖子 423
19.6 向主题添加帖子 426
19.7 用JavaScript修改论坛的显示 429
19.8 小结 431
19.9 问与答 431
19.10 测验 431
19.10.1 问题 431
19.10.2 解答 431
19.10.3 练习 432
第20章 创建一个在线商店 433
20.1 规划和创建数据库表 433
20.1.1 向store_categones表插入记录 435
20.1.2 向store_items表插入记录 435
20.1.3 向store_item_size表中插入记录 436
20.1.4 向store_item_color表插入记录 436
20.2 显示商品分类 436
20.3 显示商品 439
20.4 对在线商店前端使用JavaScript 442
20.5 小结 445
20.6 问与答 445
20.7 测验 446
20.7.1 问题 446
20.7.2 解答 446
20.7.3 练习 446
第21章 创建一个简单的日历 447
21.1 构建一个简单的显示日历 447
21.1.1 检查用户输入 447
21.1.2 构建HTML表单 448
21.1.3 创建日历表格 450
21.1.4 向日历添加事件 453
21.2 用JavaScript创建一个日历库 461
21.2.1 创建日历的HTML 461
21.2.2 构建接受用户输入的表单 462
21.2.3 创建日历 463
21.3 小结 467
21.4 问与答 467
21.5 测验 467
21.5.1 问题 467
21.5.2 解答 467
21.5.3 练习 467
第22章 管理Web应用程序 468
22.1 理解Web应用开发中的一些最佳实践 468
22.1.1 将逻辑和内容分离开 469
22.1.2 原型 470
22.1.3 测试 470
22.2 编写可维护的代码 471
22.2.1 确定命名惯例 471
22.2.2 用注释作为代码文档 472
22.2.3 清晰地缩进代码 473
22.2.4 分解代码 474
22.3 在工作中实现版本控制 474
使用版本控制系统 475
22.4 理解代码框架的价值和用法 476
22.4.1 使用JavaScript框架 477
22.4.2 使用PHP框架 478
22.5 小结 479
22.6 问与答 479
22.7 测验 480
22.7.1 问题 480
22.7.2 解答 480
22.7.3 练习 480
附录A 使用XAMPP的安装入门指南 482
A.1 使用第三方的安装包 482
A.2 Linux/UNIX下的安装 483
A.3 在Windows上安装XAMPP 484
A.4 在Mac OS X上安装XAMPP 487
A.5 让XAMPP更安全 490
A.6 故障排除 490
附录B 安装和配置MySQL 492
B.1 MySQL的当前版本和未来版本 492
B.2 如何获取MySQL 493
B.3 在Linux/UNIX上安装MySQL 493
B.4 在Mac OS X上安装MySQL 495
B.5 在Windows上安装MySQL 496
B.6 安装故障排除 499
B.7 基本安全规则 500
B.7.1 启动MySQL 500
B.7.2 增强MySQL连接的安全 501
B.8 MySQL权限系统简介 501
B.8.1 两步身份验证过程 502
B.8.2 添加用户 503
B.8.3 移除权限 505
附录C 安装和配置Apache 506
C.1 Apache的当前版本 506
C.2 选择合适的安装方法 507
C.2.1 从源代码安装 507
C.2.2 安装一个二进制代码版本 507
C.3 在Linux/UNIX上安装Apache 507
C.3.1 下载Apache源代码 508
C.3.2 解压源代码 508
C.3.3 准备编译Apache 508
C.3.4 编译和安装Apache 509
C.4 在Mac OS X上安装Apache 510
C.5 在Windows上安装Apache 510
C.6 Apache配置文件结构 512
C.6.1 指令 512
C.6.2 容器 513
C.6.3 条件评估 513
C.6.4 ServerRoot指令 514
C.6.5 per-directory配置文件 514
C.7 Apache日志文件 515
C.7.1 access_log文件 515
C.7.2 error_log文件 516
C.7.3 其他文件 516
C.8 Apache相关命令 516
C.8.1 Apache服务器二进制程序 516
C.8.2 Apache控制脚本 517
C.9 第一次启动Apache 517
C.9.1 检查你的配置文件 518
C.9.2 启动Apache 518
C.10 故障排除 519
C.10.1 未安装Visual C库(在Windows上) 519
C.10.2 已经存在一个Web服务器 519
C.10.3 不允许绑定到端口 519
C.10.4 拒绝访问 520
C.10.5 错误组设置 520
附录D 安装和配置PHP 521
D.1 PHP的当前版本和未来版本 521
D.2 在带有Apache的Linux/UNIX上编译PHP 521
D.2.1 额外的Linux/UNIX配置选项 524
D.2.2 在Linux/UNIX上集成PHP和Apache 524
D.3 在Mac OS X上安装PHP 525
D.4 在Windows上安装PHP 525
在Windows上集成PHP和Apache 526
D.5 php.ini基础 527
D.6 测试安装 527
D.7 获取安装帮助 528