免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11795 | 回复: 15
打印 上一主题 下一主题

[PHP ajax]请问php怎么返回ajax提交过来的数据? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-17 12:31 |只看该作者 |正序浏览
由ajax发送过来的数据(GET和POST),PHP是不是也是用$_GET和$_POST来接收数据的?
还有就是怎么把处理完后的结果返回给ajax???我找了很多ajax教程,都只有客户端部分的代码,如:
<script language="JavaScript" type="text/javascript">
<!--
var xmlHttp = false;

if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}


function callServer() {

  var city = document.getElementById("city").value;
  var state = document.getElementById("state").value;
  if ((city == null) || (city == "")) return;
  if ((state == null) || (state == "")) return;
  var url = "/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);
  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePage;
  xmlHttp.send(null);
}
function updatePage() {
  if (xmlHttp.readyState == 4) {
    var response = xmlHttp.responseText;
    document.getElementById("zipCode").value = response;
  }
}
//-->
</script>
<form>
<p>City: <input type="text" name="city" id="city" size="25"
       onChange="callServer();" /></p>
<p>State: <input type="text" name="state" id="state" size="25"
       onChange="callServer();" /></p>
<p>Zip Code: <input type="text" name="zipCode" id="city" size="5" /></p>
</form>

论坛徽章:
0
16 [报告]
发表于 2006-07-20 17:13 |只看该作者
xmlhttprequest相当于一个浏览器请求

论坛徽章:
0
15 [报告]
发表于 2006-07-19 00:30 |只看该作者
原帖由 PHP小帅 于 2006-7-18 10:55 发表


对于AJAX怎么响应服务器返回过来数据我当然懂啦。。而AJAX的教程绕来绕去都是在讲这些。。都不提关于服务器是怎样返回结果的。因为会了的人觉得“服务器只要将结果echo 一下就可以返回结果了”,讲出来也是废 ...


xmlhttp其实就是个本域的页面连接工具,它负责提交请求并且能接收数据.你可以形象的想象成它就是一个最最简单的网页浏览器.
而它的接收到数据后(就是把网页下载到内存后)有两种响应形式,一个是responseXML,一个是responseText,顾名思义,前者是将获得数据以XML的结构来解析并返回一个xmldocument对象,后者就是一个字符串(相当于你打开网页看查看源码的内容一样).

到现在我还是一知半解。。比如服务器有多个echo语句时,客户端是接收所有的数据,还是只接收第一句echo?

你查看源码是看到一个echo的结果呢还是几个echo的?再结合我的解释应该知道了吧.

拜拖下次回复前请认真看下我给的连接,如果都从头看一遍并跟着做一遍,都还不能理解的话,就建议跟上级报告说这个任务俺不适合.

[ 本帖最后由 crazysoul 于 2006-7-19 00:34 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
14 [报告]
发表于 2006-07-18 11:54 |只看该作者
原帖由 PHP小帅 于 2006-7-18 10:55 发表


对于AJAX怎么响应服务器返回过来数据我当然懂啦。。而AJAX的教程绕来绕去都是在讲这些。。都不提关于服务器是怎样返回结果的。因为会了的人觉得“服务器只要将结果echo 一下就可以返回结果了”,讲出来也是废 ...



服务器一般返回的是xml格式的数据,这样子xmlhttp可以正确接收。

如果是纯文本的内容,也可以接受,不过是utf-8格式的,网上有byte转换的vb函数。

论坛徽章:
0
13 [报告]
发表于 2006-07-18 10:55 |只看该作者
原帖由 crazysoul 于 2006-7-18 10:36 发表
因为的确AJAX的核心部分就是在客户端啊,有些RSS在线阅读网站的核心代码还都是在JS上呢.
看这个吧,这个应该是最简单容易上手的"教程"了,这个看完都不懂就无语了.
[url]http://searchwebservices ...


对于AJAX怎么响应服务器返回过来数据我当然懂啦。。而AJAX的教程绕来绕去都是在讲这些。。都不提关于服务器是怎样返回结果的。因为会了的人觉得“服务器只要将结果echo 一下就可以返回结果了”,讲出来也是废话。于是居然没一篇文章去讲这一句废话,造成我这个初学者迷茫了这么久!!尽管我猜到是用echo返回结果的。但可怜的是。。当时我没试成功!!!所以才跑论坛里来问

到现在我还是一知半解。。比如服务器有多个echo语句时,客户端是接收所有的数据,还是只接收第一句echo?

论坛徽章:
0
12 [报告]
发表于 2006-07-18 10:36 |只看该作者
原帖由 PHP小帅 于 2006-7-18 10:06 发表

AJAX的核心教程都只写客户端部分,并没写出服务器部分的代码。因为我知道服务器可以用ASP、PHP、JSP任何一种语言来写。。。倒霉的是:
1。我找到的教程都是ASP和JSP的服务器代码。懒得去看(也看不怎么懂)。。 ...



因为的确AJAX的核心部分就是在客户端啊,有些RSS在线阅读网站的核心代码还都是在JS上呢.
看这个吧,这个应该是最简单容易上手的"教程"了,这个看完都不懂就无语了.
http://searchwebservices.techtarget.com.cn/tips/362/2162362.shtml

以及这个系列:
http://www-128.ibm.com/developerworks/cn/xml/wa-ajaxintro2/

[ 本帖最后由 crazysoul 于 2006-7-18 10:48 编辑 ]

论坛徽章:
0
11 [报告]
发表于 2006-07-18 10:30 |只看该作者
原帖由 HonestQiao 于 2006-7-18 10:19 发表
http://www.xmlhttp.cn/

XmlHttp是什么?
最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是 ...

它好象也可以用来接收文本数据啊。。我就是在PHP文件里随便echo了一下,然后用xmlHttp.responseText接收的!!! 不过当我echo 中文时,用xmlHttp.responseText接收过来的都是?????,请问这应该怎么修改???

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
10 [报告]
发表于 2006-07-18 10:19 |只看该作者
http://www.xmlhttp.cn/

XmlHttp是什么?
最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。
来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft&reg; XML Document Object Model (DOM)处理回应。


但是web服务器自己会接受和解析xml的请求,一样可以提交数据get和post的。

论坛徽章:
0
9 [报告]
发表于 2006-07-18 10:16 |只看该作者
原帖由 ilcj 于 2006-7-17 21:37 发表
xmlHttp.onreadystatechange = updatePage;就是这句
在 updatePage中响应服务器返回
php直接echo

这个就是我昨天在发完帖后又去试了好久才试出来的。。

论坛徽章:
0
8 [报告]
发表于 2006-07-18 10:06 |只看该作者
原帖由 crazysoul 于 2006-7-17 19:02 发表
xmlHttp.open("GET", url, true);

第一个参数就是决定提交方式,跟form的method一样,你平常FORM的提交给PHP怎么接收,AJAX的也一样.

怎么返回?一般AJAX的核心教程就是这个了吧,还说看了很多??那还真 ...

AJAX的核心教程都只写客户端部分,并没写出服务器部分的代码。因为我知道服务器可以用ASP、PHP、JSP任何一种语言来写。。。倒霉的是:
1。我找到的教程都是ASP和JSP的服务器代码。懒得去看(也看不怎么懂)。。
2。当我用PHP的echo "drgergergre";客户端那边却怎么也接收不到。试了好久还是接收不到。于是就发楞了。。本来敢确定的事(PHP照样通过$_GET和$_POST来获取提交过来的数据)也开始怀疑了。。所以上来发帖询问。。。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP