最近在学习js高设的ajax部分,php文件

求救人没有身份证怎样去到贵州,这种行为是不是拐带人口。我小孩在广州做工,回家过年我拿他身份,他出来_百度知道
求救人没有身份证怎样去到贵州,这种行为是不是拐带人口。我小孩在广州做工,回家过年我拿他身份,他出来
这种行是不是可以告拐带人口。我小孩在广州做工,回家过年我拿他身份,他出来广州没身份证被人搞去了贵州,这种行为是不是拐带人口求救人没有身份证怎样去到贵州
我有更好的答案
去车站派出所办理临时身份证明,就可以买票坐车去贵州了,如果他是自愿去的,你是不可以告的
采纳率:53%
来自团队:
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。  前不久做了一个文件上传的功能页面,这次开发中我遇到了些问题,开发的时候由于时间比较紧张,因此有些细节做得并不是太仔细,所以最近几天将前面做得东西整理了下,在这里和大家 一起分享下。
  首先我介绍下我所做的功能页面,页面会同时上传两个文件,一个是数据文件,一个是签名文件,而且数据文件一般都是比较大的,上传的同时文件的数据要同步解析同步校验,最终录入到数据库里,这就导致文件上传的时间都比较长,为了得到更好的用户体验,上传文件的时候页面做一个等待的遮罩效果,这个如果用ajax异步提交就能很好的作出效果,但是标准的ajax技术可以异步上传文件吗?答案是不行,至少标准的ajax技术里没有直接用来上传文件的方法,这时同事给了我一个项目组里使用过的ajax上传文件的插件,研究了下很让我失望,这个插件只能上传一个文件同时也不支持遮罩的效果,况且代码也超级烂:作为jQuery插件,代码里面居然很少使用jQuery方法,也不知道当时同事从那里找到了这个插件。
  我现在对每一次能写js代码的机会都坚决把握,这次也不例外,我想自己写个ajax上传的jQuery插件。
  ajax上传文件原理是一种用不可见的form和iframe框架模拟ajax异步提交的方式,我在制作的插件里添加了一个用于上传文件的form和iframe,其中form也是对用户不可见的,但是它是负责文件上传的form,iframe则是接收返回数据的载体,下面我把我页面的源码和页面上传文件时候的代码贴在下面,大家可以比较下:
  源文件ajaxuploadfile.html:
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
&meta http-equiv="Content-Type" content="text/ charset=UTF-8"&
&title&Ajax File Upload PHP&/title&
&script type="text/javascript" src="js/jquery-1.7.1.js"&&/script&
&script type="text/javascript" src="js/jquery.ajaxupload.1.0.js"&&/script&
&form id="aupfFrm" name="aupfFrm" style="position:top:50left: 80"&
&label for="username"&&&&用户姓名:&/label&
&input type="text" id="username" name="username"/&
&label for="userpwd"&&&&用户密码:&/label&
&input type="password" id="userpwd" name="userpwd"/&
&label for="uploadFile"&请选择文件1:&/label&&/label&
&input type="file" id="uploadFile1" name="uploadFile1"/&
&label for="uploadFile"&请选择文件2:&/label&&/label&
&input type="file" id="uploadFile2" name="uploadFile2"/&
&input type="button" id="upBtn" name="upBtn" value="BUTTON"/&
&span id="showErrInfo" style="color: red"&&/span&
&script type="text/javascript"&
$(document).ready(function(){
$("#upBtn").bind("click",function(){
$.ajaxFileUpload({
url:"php/uploadfile.php",
loadPicUrl:"images/loading.gif",
formElemIds:["username","userpwd","uploadFile1","uploadFile2"],
dataType:"html",
success:function(data){
$("body").html(data);
error:function(data){
alert(data);
$("#upBtn").bind("click",function(){
$.ajaxFileUpload({
url:"php/uploadfile.php",
loadPicUrl:"images/loading.gif",
formElemIds:["username","userpwd","uploadFile1","uploadFile2"],
dataType:"json",
success:function(data){
$("#showErrInfo").text("");// 清空原来的提示信息
$("#showErrInfo").text("用户姓名:" + data.username +
";用户密码:" + data.userpwd +
";请求类型:" + data.dataType +
";提示信息:" + data.retTipInfo);
error:function(data){
alert(data);
  上传文件过程中的页面代码:
&form enctype="multipart/form-data" id="jqAjaxUploadFrom5"
name="jqAjaxUploadFrom5" method="post" action="php/uploadfile.php"
style="position: top: -1200 left: -1200" target="jqAjaxUploadIframe5"&
&input type="text" name="username" id="jqUploadFile5username"&
&input type="password" name="userpwd" id="jqUploadFile5userpwd"&
&input type="file" name="uploadFile1" id="jqUploadFile5uploadFile1"&
&input type="file" name="uploadFile2" id="jqUploadFile5uploadFile2"&
&input type="hidden" name="dataTp" id="dataTp" value="json"&
&iframe name="jqAjaxUploadIframe5" id="jqAjaxUploadIframe5"
style="position: top: -1000 left: -1000" src="php/uploadfile.php"&
&meta content="text/ charset=UTF-8" http-equiv="Content-Type"&
Ajax File Upload PHP
&script src="js/jquery-1.7.1.js" type="text/javascript"&
&script src="js/jquery.ajaxupload.1.0.js" type="text/javascript"&
&form style="position:top:50left: 80" name="aupfFrm" id="aupfFrm"&
&label for="username"&
&&&用户姓名:
&input type="text" name="username" id="username"&
&label for="userpwd"&
&&&用户密码:
&input type="password" name="userpwd" id="userpwd"&
&label for="uploadFile"&
请选择文件1:
&input type="file" name="uploadFile1" id="uploadFile1"&
&label for="uploadFile"&
请选择文件2:
&input type="file" name="uploadFile2" id="uploadFile2"&
&input type="button" value="BUTTON" name="upBtn" id="upBtn"&
&span style="color: red" id="showErrInfo"&
&script type="text/javascript"&
$(document).ready(function() {
$("#upBtn").bind("click",function(){
$.ajaxFileUpload({
url:"php/uploadfile.php",
loadPicUrl:"images/loading.gif",
formElemIds:["username","userpwd","uploadFile1","uploadFile2"],
dataType:"html",
success:function(data){
$("body").html(data);
error:function(data){
alert(data);
$("#upBtn").bind("click",
function() {
$.ajaxFileUpload({
url: "php/uploadfile.php",
loadPicUrl: "images/loading.gif",
formElemIds: ["username", "userpwd", "uploadFile1", "uploadFile2"],
dataType: "json",
success: function(data) {
$("#showErrInfo").text(""); // 清空原来的提示信息
$("#showErrInfo").text("用户姓名:" + data.username + ";用户密码:" + data.userpwd + ";请求类型:" + data.dataType + ";提示信息:" + data.retTipInfo);
error: function(data) {
alert(data);
&div id="up_overlay" style="display: height: 100%; width: 100%; left: 0 top: 0 position: z-index: 999; background-color: rgb(0, 0, 0); opacity: 0.59;"&
&img id="loadimg" style="left: 0 top: 0 margin-left: 280 margin-top: 150 position: z-index: 999; display:"
src="images/loading.gif"&
&form enctype="multipart/form-data" id="jqAjaxUploadFrom5"
name="jqAjaxUploadFrom5" method="post" action="php/uploadfile.php"
style="position: top: -1200 left: -1200" target="jqAjaxUploadIframe5"&
&input type="text" name="username" id="jqUploadFile5username"&
&input type="password" name="userpwd" id="jqUploadFile5userpwd"&
&input type="file" name="uploadFile1" id="jqUploadFile5uploadFile1"&
&input type="file" name="uploadFile2" id="jqUploadFile5uploadFile2"&
&input type="hidden" name="dataTp" id="dataTp" value="json"&
&iframe name="jqAjaxUploadIframe5" id="jqAjaxUploadIframe5"
style="position: top: -1000 left: -1000" src="php/uploadfile.php"&
  其中form代码:
&form enctype="multipart/form-data" id="jqAjaxUploadFrom5"
name="jqAjaxUploadFrom5" method="post" action="php/uploadfile.php"
style="position: top: -1200 left: -1200" target="jqAjaxUploadIframe5"&
&input type="text" name="username" id="jqUploadFile5username"&
&input type="password" name="userpwd" id="jqUploadFile5userpwd"&
&input type="file" name="uploadFile1" id="jqUploadFile5uploadFile1"&
&input type="file" name="uploadFile2" id="jqUploadFile5uploadFile2"&
&input type="hidden" name="dataTp" id="dataTp" value="json"&
  iframe代码:
&iframe name="jqAjaxUploadIframe5" id="jqAjaxUploadIframe5"
style="position: top: -1000 left: -1000" src="php/uploadfile.php"&
  遮罩的代码:
&div id="up_overlay" style="display: height: 100%; width: 100%; left: 0 top: 0 position: z-index: 999; background-color: rgb(0, 0, 0); opacity: 0.59;"&
&img id="loadimg" style="left: 0 top: 0 margin-left: 280 margin-top: 150 position: z-index: 999; display:"
src="images/loading.gif"&
  调用方式:
$("#upBtn").bind("click",function(){
$.ajaxFileUpload({
url:"php/uploadfile.php",
loadPicUrl:"images/loading.gif",
formElemIds:["username","userpwd","uploadFile1","uploadFile2"],
dataType:"json",
success:function(data){
$("#showErrInfo").text("");// 清空原来的提示信息
$("#showErrInfo").text("用户姓名:" + data.username +
";用户密码:" + data.userpwd +
";请求类型:" + data.dataType +
";提示信息:" + data.retTipInfo);
error:function(data){
alert(data);
参数介绍:url:请求路径;loadPicUrl:遮罩效果的等待图片;formElemIds:提交到服务端的form元素的id值,注意一定要是个数组,如果那个字段的id没有写到数组里,那么它的数据也不会提交到服务端;dataType:指定返回值的数据类型,我计划写html,json,xml和script,现在实现了html和script,其他两种也很简单,以后有空再补充;success:文件上传成功的回调函数;error:文件上传失败的回调函数。
下面就是我程序的源码了:
首先还是目录结果,如图:
javascript代码(jquery.ajaxupload.1.0.js):
// 制作jQuery插件 author:xiajun
ajax多文件上传
;(function($){
$.extend({
createUploadIframe:function(id,url){// 创建用于文件上传的iframe
var upIframeId = "jqAjaxUploadIframe" +
var jqIfrmObj = $('&iframe id="' + upIframeId + '" name="' + upIframeId + '" /&');
// iframe的位置
jqIfrmObj.css('position','absolute');
jqIfrmObj.css('top','-1000px');
jqIfrmObj.css('left','-1000px');
jqIfrmObj.attr('src',url);
$('body').append(jqIfrmObj);
return jqIfrmO
createUploadForm:function(timeId,fileElems,dataType){// 创建用于上传文件的form
var upFormId = "jqAjaxUploadFrom" + timeId;
var jqFormObj = $('&form
action="" method="POST" name="' + upFormId + '" id="' + upFormId + '" enctype="multipart/form-data"&&/form&');
for (var i = 0,len = fileElems.i &i++){
var fileElemObj = fileElems[i],
fileId = 'jqUploadFile' + timeId + fileElemObj,
oldElem = $('#' + fileElemObj),
newElem = $(oldElem).clone();
$(oldElem).attr('id',fileId);
$(oldElem).before(newElem);
$(oldElem).appendTo(jqFormObj);
// 数据返回类型
var dataTpIpt = $("&input type='hidden' id='dataTp' name = 'dataTp'/&");
dataTpIpt.val(dataType);
jqFormObj.append(dataTpIpt);
$(jqFormObj).css('position', 'absolute');
$(jqFormObj).css('top', '-1200px');
$(jqFormObj).css('left', '-1200px');
$(jqFormObj).appendTo('body');
return jqFormO
createOverLay:function(){// 创建遮罩效果
var overLayDiv = $("&div&&/div&");
overLayDiv.attr("id","up_overlay");
overLayDiv.css("display","block");
overLayDiv.css("height","100%");
overLayDiv.css("width","100%");
overLayDiv.css("left","0px");
overLayDiv.css("top","0px");
overLayDiv.css("position","fixed");
overLayDiv.css("z-index","999");
overLayDiv.css("background-color","#000000");
overLayDiv.css("opacity","0.59");
overLayDiv.css("filter","Alpha(opacity=50)");
$("body").append(overLayDiv);
createLoadingPic:function(loadPicUrl){// 创建正在加载的图片
var oLoadingPic = $("&img&&/img&");
oLoadingPic.attr("id","loadimg");
oLoadingPic.css("left","0px");
oLoadingPic.css("top","0px");
oLoadingPic.css("margin-left","280px");
oLoadingPic.css("margin-top","150px");
oLoadingPic.css("position","fixed");
oLoadingPic.css("z-index","999");
oLoadingPic.css("display","block");
oLoadingPic.attr("src",loadPicUrl);
$("body").append(oLoadingPic);
ajaxFileUpload:function(oJson){// 文件上传方法
// 遮罩效果 start
jQuery.createOverLay();
jQuery.createLoadingPic(oJson.loadPicUrl);
// 遮罩效果 end
// 创建用于上传文件的iframe和form start
var timeId = new Date().getTime();
var upfForm = jQuery.createUploadForm(timeId,oJson.formElemIds,oJson.dataType);
upfIframe = jQuery.createUploadIframe(timeId,oJson.url),
upfFormId = "jqAjaxUploadFrom" + timeId,
upfIframeId = "jqAjaxUploadIframe" + timeId;
// 创建用于上传文件的iframe和form end
// 上传文件的回调函数 start
var xml = {};
var uploadFileCallback = function(){
var cbUpfIfrm = $("#" + upfIframeId);
xml = cbUpfIfrm.contents().find("body");
var sErrFlag = $.trim(cbUpfIfrm.contents().find("body").find("input[id='errFlag']").val()),
sTipInfo = $.trim(cbUpfIfrm.contents().find("body").find("input[id='errInfo']").val());
if (sErrFlag == 'false'){
if (oJson.error){
oJson.error(sTipInfo);
}else if (sErrFlag == 'true'){
var retData = jQuery.uploadRetHttpData(xml,oJson.dataType);
if (oJson.success){
$("#up_overlay").remove();
$("#loadimg").remove();
oJson.success(retData);
$(cbUpfIfrm).unbind();
setTimeout(function(){
$(upfIframe).remove();
$(upfForm).remove();
xml = null;
}catch(e){
alert("Callback error1:" + e);
// 上传文件的回调函数 end
var ajaxUpfForm = $("#" + upfFormId);
ajaxUpfForm.attr("action",oJson.url);
ajaxUpfForm.attr("method","post");
ajaxUpfForm.attr("target",upfIframeId);
if (ajaxUpfForm.attr("encoding")){
ajaxUpfForm.attr("encoding","multipart/form-data");
ajaxUpfForm.attr("enctype","multipart/form-data");
ajaxUpfForm.submit();
}catch(e){
alert("ajaxFileUpload Error:" + e);
$("#" + upfIframeId).bind("load",uploadFileCallback);
return {abort: function () {}};
uploadRetHttpData:function(resp,type){// 上传返回的数据
switch (type) {
case 'html':
return resp.find("div[id='resultData']").html();
case 'xml':
alert("to do ....");// 以后再写
case 'json':
return eval("(" + resp.find("div[id='resultData']").text() + ")");
case 'script':
alert("to do ....");// 以后再写
})(jQuery);
  服务端我使用的是php,我的工作语言是java,今天使用php也是第一次尝试另一种服务端语言,这个决定也不是临时的,我打算以后自我学习所写的代码都将会是脚本语言,最近一段时间是php,等php熟练后就是python,我的计划是学会四门脚本语言,另外两种是nodeJs和ruby了。
  使用php写代码的感觉就是爽,比java方便多了,做网站就应该用php这样的脚本语言。
下面是我服务端源码(uploadfile.php):
//sleep(234);
* 上传错误处理函数
* Enter description here ...
* @param $errCode
function parseFileErr($fileNm,$errCode){
setOperateFlag('false');
switch ($errCode) {
echo $fileNm . ":文件大小超过了PHP.ini中的文件限制!";
echo $fileNm . ":文件大小超过了浏览器限制!";
echo $fileNm . ":文件部分被上传!";
echo $fileNm . ":没有找到要上传的文件!";
echo $fileNm . ":服务器临时文件夹丢失,请重新上传!";
echo $fileNm . ":文件写入到临时文件夹出错!";
echo $fileNm . ":文件上传错误!!";
* 设置操作状态 true表示成功 false 表示失败
* Enter description here ...
* @param $flag
function setOperateFlag($flag,$tipInfo){
echo "&input type='hidden' id='errFlag' name='errFlag' value='" . $flag . "' /&";
echo "&input type='hidden' id='errInfo' name='errInfo' value='" . $tipInfo . "' /&";
* 校验文件的类型和大小
* Enter description here ...
* @param $upFileTp
* @param $upFileSize
function checkFileTypeAndSize($upFileTp,$upFileSize){
if ($upFileSize & 28480){
return true;
return false;
* 判断上传文件是否存在
* Enter description here ...
* @param $upFileNm
function checkFileExists($upFileNm){
if (file_exists($upFileNm)){
return "tp0_" . $upFileNm;// 已存在文件改名字保存
return $upFileNm;
* 返回数据
* Enter description here ...
function resultDataFtn(){
$reqUserNm = $_REQUEST["username"];
$reqUserPwd = $_REQUEST["userpwd"];
$reqDataTp = $_REQUEST["dataTp"];
echo "&div id='resultData'&";
if ($reqDataTp == 'html'){
echo "&h1 style='color:red'&PHP Ajax 多文件上传 成功&/h1&";
}elseif ($reqDataTp == 'json'){
$jsonArr = array("username"=& $reqUserNm,
"userpwd" =& $reqUserPwd,
"dataType" =& $reqDataTp,
"retTipInfo" =& "PHP Ajax 多文件上传 成功");
echo json_encode($jsonArr);
echo "&/div&";
// 上传文件1
$upFile01Name = $_FILES['uploadFile1']['name'];
$upFile01Size = $_FILES['uploadFile1']['size'];
$upFile01TmpNm = $_FILES['uploadFile1']['tmp_name'];
$upFile01Type = $_FILES['uploadFile1']['type'];
$upFile01Err = $_FILES['uploadFile1']['error'];
// 上传文件2
$upFile02Name = $_FILES['uploadFile2']['name'];
$upFile02Size = $_FILES['uploadFile2']['size'];
$upFile02TmpNm = $_FILES['uploadFile2']['tmp_name'];
$upFile02Type = $_FILES['uploadFile2']['type'];
$upFile02Err = $_FILES['uploadFile2']['error'];
if ($upFile01Name == '' || $upFile02Name == ''){
setOperateFlag('false',"请上传文件!");
//echo "&script&alert('请上传文件!');&/script&";
if ($upFile01Err & 0 || $upFile02Err & 0){
//$upFile01Err & 0 ? parseFileErr($upFile01Name, $upFile01Err) : "";
//$upFile02Err & 0 ? parseFileErr($upFile02Name, $upFile02Err) : "";
setOperateFlag('false',"上传失败!");
if (!checkFileTypeAndSize($upFile01Type, $upFile01Size) || !checkFileTypeAndSize($upFile02Type, $upFile02Size)){
setOperateFlag('false','上传的文件过大!');
//echo "&script&alert('上传的文件过大!');&/script&";
setOperateFlag('true',"成功");
move_uploaded_file($upFile01TmpNm, checkFileExists($upFile01Name));
move_uploaded_file($upFile02TmpNm, checkFileExists($upFile02Name));
resultDataFtn();// 结果数据处理
  这个插件写的很匆忙,问题肯定很多,特别是服务端和客户端有些逻辑有一定耦合,我估计某些童鞋想把插件迁移到其他的服务端上会有点麻烦,等有时间我会进一步改进自己的代码。
  源代码下载路径:  
阅读(...) 评论()Ajax,JavaScript和PHP编程导学_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
Ajax,JavaScript和PHP编程导学
书名,作者(英国)(PhilBallard)巴拉德,中译本机械工业出版社2009年出版。该书介绍了如何使mAjax、JavaScript和PHP进行web开发。全书分为6个部分。适合Web应用开发人员及网页设计人员参考。
Ajax,JavaScript和PHP编程导学内容简介
《Ajax、JavaScripthe和PHP编程导学》详尽地介绍了如何使mAjax、JavaScript和PHP进行web开发。全书分为6个部分,包括:Web基础知识回顾、使用JavaScriptWeb脚本编程基础、Ajax基础、使用PHP的服务器端脚本编程、较复杂的Ajax技术、Ajax32具和资源。另外,附录列出了JavaScript、PHP和AjaxWeb站点,可方便开发人员使用。
《Ajax.JavaScripthe和PHP编程导学》非常适合Web应用开发人员及网页设计人员参考。
Ajax,JavaScript和PHP编程导学作者简介
PhilBallard,《SamsTeachYourselfAjaxin10Minutes》一书的作者。他于20世纪80年代毕业于英国利兹大学,获得电子学学位。他早期在一个大型跨国公司做研究,而后几年在高技术行业从事商业和管理工作,现在是一名全职的软件工程咨询师。随着TheMouseWhisperer的运作,Ballard近年来专注于为一些国际化客户提供Web站点、互联网设计和开发。
MichaelMoncur,一位自由职业Web站点管理员和作者。他从1994年就开始运营一个Web站点网络,其中包含了具有很高引用率的Web方面历史悠久的站点。他编写了《SamsTeachYourselfJavaScriptin24Hours》一书以及关于网络、编程认证和数据库的几本畅销书。
Ajax,JavaScript和PHP编程导学编辑推荐
通过《Ajax、JavaScripthe和PHP编程导学》,你可以很快学会如何组合Ajax、JavaScript和PHP这些功能强大的技术,来为Web应用程序创建交互式界面。
《Ajax、JavaScripthe和PHP编程导学》不需要读者有Ajax编程经验。本书采用直截了当、按部就班的写作方式,每一章都建立在前一章内容的基础之上,帮助你学习使用JavaScript、PHP和其他相关的新技术进行Ajax编程的必备知识。
不管你使用的是Linux、Windows还是Mac,随书光盘包含了一个完整的Ajax编程起步工具包,它提供了所有需要的编程工具、参考信息、JavaScript库和服务器软件,帮助你建立一个稳定的环境来学习、测试和工作。
《Ajax、JavaScripthe和PHP编程导学》教你:
为Web应用程序构建更好的、交互性更强的界面。
综合应用JavaScript、HTML、XML和PHP来创建Ajax效果。
编译一个Ajax应用程序。
使用REST和SOAP创建并消费Web服务。
避免常见错误以及调试程序。
使用流行的Ajax库来加快和改进常见编程任务的开发。
Ajax,JavaScript和PHP编程导学目录
第一部分Web基础知识回顾
第1章Web的运作
1.1Internet简史
1.1.2万维网
1.2.1什么是Web页面
1.2.2Web服务器
1.2.3服务器端编程
1.2.4Web浏览器
1.2.5客户端编程
1.2.6DNS—域名服务器
1.3HTTP简介
1.4HTTP请求和响应
1.4.1HTTP请求
1.4.2HTTP响应
1.5HTML表单
第2章用HTML和CSS编写样式化页面
2.1HTML简介
2.1.1什么是HTML1
2.1.2编写HTML需要什么工具
2.1.3第一个HTML文档
2.2HTML页面的元素
2.2.1文档的标题head
2.2.2文档正文body
2.2.3为HTML元素添加属性4
2.2.6超链接
2.3HTML页面更高级知识
2.4一些有用的HTML标签
2.5添加自己的样式
2.6定义规则
2.7添加一些类
2.8应用样式
2.8.1嵌入样式
2.8.2链接样式
2.8.3内联样式
2.8.4层叠优先级
2.9使用样式格式化文本
2.9.1链接样式
2.9.2颜色样式
2.10添加线条
第3章剖析Ajax应用程序
3.1为何需要Ajax
3.1.1传统客户端-服务器交互和Ajax
3.1.2富用户体验
3.2Ajax简介
3.3Ajax的必备部分
3.3.1XMLHTTPRequest对象
3.3.2与服务器通信
3.3.3服务器上发生了什么
3.3.4处理服务器响应
3.3.5其他常见任务
第二部分JavaScriptWeb脚本编程基础
第4章用JavaScript创建简单脚本
4.1脚本编程工具
4.1.1文本编辑器
4.1.2浏览器
4.2使用JavaScript显示时间
4.3开始脚本
4.4添加JavaScript语句
4.4.1把日期存储到变量中
4.4.2计算结果
4.5创建输出
4.6把脚本添加到Web页面
4.7测试脚本
4.7.1修改脚本
4.7.2处理JavaScript错误
4.7.4使用函数组合任务
4.7.8事件处理程序
4.7.9哪个脚本先运行
4.8JavaScript语法规则
4.8.1区分大小写
4.8.2变量名、对象名和函数名
4.8.3保留字
4.9使用注释
4.10JavaScript最佳实践
第5章使用文档对象模型(DOM)
5.1理解对象
5.2理解DOM
5.2.1DOM的历史
5.2.2DOM层级
5.3操作Web文档
5.3.1获取有关文档的信息
5.3.2把文本写入一个文档
5.3.3使用链接和锚点
5.4访问浏览器历史
5.5使用location对象
第6章使用变量、字符串和数组
6.1使用变量
6.2理解表达式和操作符
6.3JavaScript中的数据类型
6.4数据类型之间的转换
6.5使用String对象
6.6操作子字符串
6.7使用数值数组
6.8使用字符串数组
6.9数值数组排序
第7章使用函数和对象
7.1使用函数
7.2对象简介
7.3使用对象来简化脚本编程
7.4扩展内建的对象
第8章使用条件和循环来控制流程
8.2使用简捷条件表达式
8.3使用if和else测试多个条件
8.4使用带有switch的多个条件
8.5使用for循环
8.6使用while循环
8.7使用do...while循环
8.8使用循环
8.9遍历对象属性
第9章使用内建函数和库
9.1使用Math对象
9.2使用Math函数
9.3使用with关键字
9.4使用Date
9.5使用第三方库
9.6其他的库
第三部分Ajax基础
第10章Ajax的核心—XMLHTTPRequest对象
10.1XMLHTTPRequest简介
10.2创建XMLHTTPRequest对象
第11章与服务器通信
11.1发送服务器请求
11.2检测服务器状态
11.3回调函数
第12章使用返回的数据
12.1responseText和responseXML属性
12.2解析responseXML
12.3提供用户反馈
第13章第一个Ajax应用程序
13.1构建Ajax应用程序
13.2HTML文档
13.3添加JavaScript
13.4综合应用
第四部分使用PHP的服务器端脚本编程
第14章认识PHP
14.1PHP基础
14.2第一个PHP脚本
第15章变量
15.1理解变量
15.2数据类型
15.3使用数值
15.4数值数据类型
15.5数值函数
15.6使用字符串
15.7格式化字符串
15.8字符串函数
15.9使用数组
15.10数组函数
15.11日期格式
15.12使用时间戳
第16章流程控制
16.1条件语句
第17章函数
17.1使用函数
17.2参数和返回值
17.3使用库文件
第18章使用类
18.1面向对象的PHP编程
18.2什么是类
18.3创建和使用对象
第五部分较复杂的Ajax技术
第19章返回文本数据
19.1从responseText属性获取更多
第20章AHAH—异步HTML和HTTP
20.1AHAH简介
20.2为AHAH创建一个较小的库
20.3使用myAHAHlib.js
第21章返回XML数据
21.1添加Ajax中的“x”
21.2responseXML属性
21.3项目—一个RSS新闻阅读器
第22章Web服务器和REST及SOAP协议
22.1Web服务简介
22.2REST—RepresentationalStateTransfer
22.3使用REST
22.4使用SOAP的Web服务
22.5SOAP协议
22.6使用Ajax和SOAP
22.7再谈SOAP和REST
第23章用于Ajax的JavaScript库
23.1一个Ajax库
23.2回顾myAHAHlib.js
23.3实现库
23.4使用库
第24章Ajax陷阱
24.1常见Ajax错误
24.2Back按钮
24.3书签和链接
24.4告诉用户正在发生什么
24.5让Ajax优雅降级
24.6处理搜索引擎蜘蛛
24.7指出活动页面元素
24.8不要在不合适的时候使用Ajax
24.9安全性
24.10跨多平台测试代码
24.11Ajax不能弥补糟糕的设计
24.12一些编程陷阱
24.12.3转义内容
第六部分Ajax工具和资源
第25章prototype.js工具箱
25.1prototype.js简介
25.2包装XMLHTTPRequest—Ajax对象
25.3示例项目—股票价格阅读器
第26章使用Rico
26.1Rico简介
26.2Rico的其他界面工具
第27章使用Script.aculo.us
27.1下载库
27.2包含文件
27.3使用效果
27.4构建脚本
第28章使用XOAD
28.1XOAD简介
28.1.1下载和安装XOAD
28.1.2一个简单的XOAD页面
28.2XOADHTML
28.3XOAD_HTML高级编程
附录JavaScript、PHP和AjaxWeb站点
清除历史记录关闭

我要回帖

 

随机推荐