Php 从旧式ajax分离返回数据

Php 从旧式ajax分离返回数据,php,ajax,Php,Ajax,我有一个页面,通过旧的方式ajax添加新记录,这段代码是添加新记录并返回错误或完成结果消息,我如何在div上打印消息并在其他div上打印结果。我尝试了,但有人告诉我使用JOSN,我怎么做 <script language="JavaScript"> $(document).ready(function() { }); $("#closeerr").live('click', function() { $("#gadget").hide(); }); var H

我有一个页面,通过旧的方式ajax添加新记录,这段代码是添加新记录并返回错误或完成结果消息,我如何在div上打印消息并在其他div上打印结果。我尝试了,但有人告诉我使用JOSN,我怎么做

<script language="JavaScript">
$(document).ready(function() {
});
$("#closeerr").live('click', function() {
    $("#gadget").hide();
});

       var HttPRequest = false;

       function doCallAjax(Mode,Page,ID) {
          HttPRequest = false;
          if (window.XMLHttpRequest) { // Mozilla, Safari,...
             HttPRequest = new XMLHttpRequest();
             if (HttPRequest.overrideMimeType) {
                HttPRequest.overrideMimeType('text/html');
             }
          } else if (window.ActiveXObject) { // IE
             try {
                HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
                try {
                   HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
             }
          } 

          if (!HttPRequest) {
             alert('Cannot create XMLHTTP instance');
             return false;
          }

          var url = 'AjaxItemsGroupsRecord.php';
          var pmeters = "titems_groups_GroupName=" + encodeURI( document.getElementById("items_groups_GroupName").value) +
                        "&titems_groups_sys_type_ID=" + encodeURI( document.getElementById("items_groups_sys_type_ID").value ) +
                        '&myPage='+Page +
                        "&tID=" + ID +
                        "&tMode=" + Mode;

            HttPRequest.open('POST',url,true);

            HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            HttPRequest.setRequestHeader("Content-length", pmeters.length);
            HttPRequest.setRequestHeader("Connection", "close");
            HttPRequest.send(pmeters);


            HttPRequest.onreadystatechange = function()
            {

                 if(HttPRequest.readyState == 3)  // Loading Request
                  {
                   document.getElementById("mySpan").innerHTML = "looding";
                  }

                 if(HttPRequest.readyState == 4) // Return Request
                  {
                   document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
                  }

            }

       }
    </script>  

$(文档).ready(函数(){
});
$(“#closeerr”).live('click',function(){
$(“#gadget”).hide();
});
var-HttPRequest=false;
函数doCallAjax(模式、页面、ID){
HttPRequest=false;
如果(window.XMLHttpRequest){//Mozilla,Safari,。。。
HttPRequest=新的XMLHttpRequest();
if(HttPRequest.overrideMimeType){
HttPRequest.overrideMimeType('text/html');
}
}如果(window.ActiveXObject){//IE
试一试{
HttPRequest=新的ActiveXObject(“Msxml2.XMLHTTP”);
}捕获(e){
试一试{
HttPRequest=新的ActiveXObject(“Microsoft.XMLHTTP”);
}捕获(e){}
}
} 
如果(!HttPRequest){
警报(“无法创建XMLHTTP实例”);
返回false;
}
var url='AjaxItemsGroupsRecord.php';
var pmeters=“titems\u groups\u GroupName=“+encodeURI(document.getElementById(“items\u groups\u GroupName”).value)+
“&titems\u groups\u sys\u type\u ID=“+encodeURI(document.getElementById(“items\u groups\u sys\u type\u ID”).value)+
“&myPage=”+第页+
“&tID=“+ID+
“&tMode=“+模式;
HttPRequest.open('POST',url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
HttPRequest.setRequestHeader(“内容长度”,pmeters.length);
setRequestHeader(“连接”、“关闭”);
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange=函数()
{
if(HttPRequest.readyState==3)//加载请求
{
document.getElementById(“mySpan”).innerHTML=“looding”;
}
if(HttPRequest.readyState==4)//返回请求
{
document.getElementById(“mySpan”).innerHTML=HttPRequest.responseText;
}
}
}

如果jQuery是一个选项…正如我在评论中提到的,我建议您尝试使用jQuery,因为您看起来对JavaScript相当陌生。 它使AJAX请求简单得多,您不必担心
XMLHttpRequest
在跨浏览器工作

有关发出实际AJAX请求的信息,请参见:

现在,如果您想使用JSON,您需要将数据转换为PHP脚本中返回的数据。 这非常简单,只需在
json\u encode()
中传递数据,它就会将数据转换为json字符串。然后,您只需回显它,就可以将其返回到AJAX请求

echo json_encode($data);
现在,如果您已经将AJAX请求设置为期望JSON响应,那么可以使用返回的数据。比如说:

$.ajax({
    url: 'request.php',    // the php you want to call
    dataType: 'json'       // the type of data being returned
}).done(function(json) {
    // you now have a json object
});
如果您只能使用本机JavaScript… 如果您不能使用jQuery,那么它的工作方式大致相同。您将在示例中获得AJAX请求的代码。您仍然可以在PHP中使用
json\u encode()
。唯一的区别是,当数据返回时,您需要像这样解析它:

JSON.parse(json);

有关最后一位签出的更多信息:

您应该研究jQuery和
ajax()
方法。它将比这里的要整洁得多:基本上为您处理所有HttpRequest位,这样您就可以专注于更重要的方面。