php传参方式1--ajax,php1--ajaxajax即“asynchronous javascript and xml”(异步javascript和xml),是指一种创建交互式网页应用的网页开发技术。ajax = 异步 javascript和xml(标准通用标记语言的子集)。ajax 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 ajax)如果需要更新内容,必须重载整个网页页面。异步请求(xmlhttprequest对象),局部刷新(本质是js dom)ajax的用途还有填写表单时候自动判断用户名是否重复,比如你写博客写到一半突然电脑重启了,可以恢复你写了一半的内容。 get用于获取数据,有字数限制,请求提包括在url中,post无限制,用于修改服务器的内容。get是安全的请求,需要保证不修改信息。1、ajax一般用于当前页面,不实现页面跳转
2、ajax端:怎样异步得监听服务器端的状态呢?通过onreadystatechange监听readystate属性
request.onreadystatechange = function() {
if (request.readystate===4) {
0:请求未初始化(还没有调用 open())。1:请求已经建立,但是还没有发送(还没有调用 send())。2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。4:响应已完成;您可以获取并使用服务器的响应了。所以一般都是判断等于4之后进行相应的操作。
但注意这个和request的status是不一样的
比如readystate=4但是status=404表示响应完成但是响应的内容是没有找到文件
所以一般做法是==200的时候返回内容,其他就显示发声错误即可。
注意在post请求中要设置url 成encode,及url解码,否则不能正确给出结果
request.setrequestheader(content-type,application/x-www-form-urlencoded);
但是url解码会有一个问题,由于进行urlencoded的时候加号会自动解码成空格,&会被解码成变量连接符,所以如果出现这些字符必须要进行转码
(在做canvas上传图片的url的时候遇到了这个问题)
pic = pic.replace(/\+/g, %2b);
pic = pic.replace(/\&/g, %26);
3、服务器通过echo来返回给传递ajax的界面。(提示:zendstudio内置的浏览器对于ajax的页面总是会显示上一次的页面,所以改成在外置浏览器里运行preference-general-web browser里面设置。)如果只返回一行简单的,可以不用jason,jason可以更方便返回不同键值的数据。 1 2 3 4 5 demo 6 12 13 14 15 16 员工查询17 18 请输入员工编号:19 20 查询21
22 23 员工新建24 请输入员工姓名:25
26 请输入员工编号:27
28 请选择员工性别:29 30 女31 男32
33 请输入员工职位:34
35 保存36
37 38 84 85
3、响应server代码serverjason.php
洪七, number => 101, sex => 男, job => 总经理), array(name => 郭靖, number => 102, sex => 男, job => 开发工程师), array(name => 黄蓉, number => 103, sex => 女, job => 产品经理) );//判断如果是get请求,则进行搜索;如果是post请求,则进行新建//$_server是一个超全局变量,在一个脚本的全部作用域中都可用,不用使用global关键字//$_server[request_method]返回访问页面使用的请求方法if ($_server[request_method] == get) { search();} elseif ($_server[request_method] == post){ create();}//通过员工编号搜索员工function search(){ //检查是否有员工编号的参数 //isset检测变量是否设置;empty判断值为否为空 //超全局变量 $_get 和 $_post 用于收集表单数据 if (!isset($_get[number]) || empty($_get[number])) { echo '{success:false,msg:参数错误}';//jason格式 return; } //函数之外声明的变量拥有 global 作用域,只能在函数以外进行访问。 //global 关键词用于访问函数内的全局变量 global $staff; //获取number参数 $number = $_get[number]; $result = '{success:false,msg:没有找到员工。}'; //遍历$staff多维数组,查找key值为number的员工是否存在,如果存在,则修改返回结果 foreach ($staff as $value) { if ($value[number] == $number) { $result = '{success:true,msg:找到员工:员工编号:' . $value[number] . ',员工姓名:' . $value[name] . ',员工性别:' . $value[sex] . ',员工职位:' . $value[job] . '}';//jason格式 break; } } echo $result;}//创建员工function create(){ //判断信息是否填写完全 if (!isset($_post[name]) || empty($_post[name]) || !isset($_post[number]) || empty($_post[number]) || !isset($_post[sex]) || empty($_post[sex]) || !isset($_post[job]) || empty($_post[job])) { echo '{success:false,msg:参数错误,员工信息填写不全}'; return; } //todo: 获取post表单数据并保存到数据库 //提示保存成功 echo '{success:true,msg:员工:' . $_post[name] . ' 信息保存成功!}';}?>
4、下面是jquery的形式
demo 员工查询请输入员工编号:查询
员工新建请输入员工姓名:
请输入员工编号:
请选择员工性别:女男
请输入员工职位:
保存
洪七, number => 101, sex => 男, job => 总经理), array(name => 郭靖, number => 102, sex => 男, job => 开发工程师), array(name => 黄蓉, number => 103, sex => 女, job => 产品经理) );//判断如果是get请求,则进行搜索;如果是post请求,则进行新建//$_server是一个超全局变量,在一个脚本的全部作用域中都可用,不用使用global关键字//$_server[request_method]返回访问页面使用的请求方法if ($_server[request_method] == get) { search();} elseif ($_server[request_method] == post){ create();}//通过员工编号搜索员工function search(){ //检查是否有员工编号的参数 //isset检测变量是否设置;empty判断值为否为空 //超全局变量 $_get 和 $_post 用于收集表单数据 if (!isset($_get[number]) || empty($_get[number])) { echo '{success:false,msg:参数错误}'; return; } //函数之外声明的变量拥有 global 作用域,只能在函数以外进行访问。 //global 关键词用于访问函数内的全局变量 global $staff; //获取number参数 $number = $_get[number]; $result = '{success:false,msg:没有找到员工。}'; //遍历$staff多维数组,查找key值为number的员工是否存在,如果存在,则修改返回结果 foreach ($staff as $value) { if ($value[number] == $number) { $result = '{success:true,msg:找到员工:员工编号:' . $value[number] . ',员工姓名:' . $value[name] . ',员工性别:' . $value[sex] . ',员工职位:' . $value[job] . '}'; break; } } echo $result;}//创建员工function create(){ //判断信息是否填写完全 if (!isset($_post[name]) || empty($_post[name]) || !isset($_post[number]) || empty($_post[number]) || !isset($_post[sex]) || empty($_post[sex]) || !isset($_post[job]) || empty($_post[job])) { echo '{success:false,msg:参数错误,员工信息填写不全}'; return; } //todo: 获取post表单数据并保存到数据库 //提示保存成功 echo '{success:true,msg:员工:' . $_post[name] . ' 信息保存成功!}';}?>
http://www.bkjia.com/phpjc/1056843.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1056843.htmltecharticlephp传参方式1--ajax,php1--ajax ajax即a synchronous j avascriptand x ml (异步javascript和xml),是指一种创建交互式网页应用的网页开发技术。ajax = 异步...