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