我有以旧方式添加新记录的页面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>
答案 0 :(得分:0)
如果jQuery是一个选项... 正如我的评论中所提到的,我建议你试试jQuery http://jquery.com/,因为你看起来对JavaScript很新。
它使AJAX请求变得更加简单,您不必担心让XMLHttpRequest
跨浏览器工作。
要发出实际的AJAX请求,请参阅:http://api.jquery.com/jQuery.ajax/
现在,如果您想使用JSON,则需要将数据转换为在PHP脚本中返回。
这非常简单,您只需传递json_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_encode()
。唯一的区别是当数据返回时你需要像这样解析它:
JSON.parse(json);
有关最后一位结帐的详细信息:Parse JSON in JavaScript?