这段关于AJAX的客户端代码,服务端的PHP要如何才能捕捉到提交信息呢?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
function cXHR()
{
var xhr = null;
if(window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObjext)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
return xhr;
}
var xhr = cXHR();
var send = function()
{
var txt = document.getElementById("txt").value;
xhr.onreadystatechange = rq;
xhr.open('post','http://127.0.0.1/angel/ajax/1.php');
xhr.send(document.getElementById("txt").value);
}
function rq()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
{
        document.getElementById("msg").innerHTML = xhr.responseText;
}
}}
</script>
</head><body>
<div id="msg"></div>
<input type="text" id="txt"/>
<br/>
<input type="button" value="GO" onclick="send();" />
</body>
</html>

解决方案 »

  1.   

    不是直接把send()发送的值插入数据库的吗?是的话直接select数据库就行了吧。
      

  2.   

     触发send(),然后由http://127.0.0.1/angel/ajax/1.php页面处理的啊
      

  3.   

    1.php
    <?php
    phpinfo();
    ?>你会得到你想要的讯息的.
      

  4.   

    xhr.send(document.getElementById("txt").value);它位于$_POST或者$HTTP_RAW_POST_DATA数组里面。这里是直接把数据POST到服务器端了,而不是像通常那样,我们给它指定个参数名跟在url的后面。xhr.open('post','http://127.0.0.1/angel/ajax/1.php?txt='+document.getElementById("txt").value);
    所以你不知道它位于$_POST数组中的哪个索引里面。其实它就位于HTTP信息头的下面,你可以通过$_POST或者$HTTP_RAW_POST_DATA数组获取它。$HTTP_RAW_POST_DATA与$_POST的区别在于,它得到的是客户端POST过来的原始数据,而$_POST数组是经PHP处理过的,比如$_POST数组会存储urldecode后的数据。对于某些PHP无法识别的MIME头,比如XML,WML等,你最好使用$HTTP_RAW_POST_DATA这个数组,然后自己去解析数据格式。