AJAX如何让服务器返回信息的输出两种不同的样式?(有能力的给代码,不要建议)

A.html是信息表单,B.php处理提交信息(有两种输出结果:YES或NO)我想要输出绿色的YES或红色的NO如果在B.php文件里单独加输出样式(如:echo"<ps... A.html是信息表单,B.php处理提交信息(有两种输出结果:YES或NO)我想要输出绿色的YES或红色的NO
如果在B.php文件里单独加输出样式(如:echo "<p style='color:green'>YES</p>"),是可以达到最终在B.php页面输出 绿色的YES。但现在运用了AJAX,B.php文件的输出结果在A.html页输出,以上方法便行不通,那样会把<p style=...>这些标签信息也输出在A.html页面了,我在A.html修改了输出样式,但只有一种色。

请问如何修改A.html来判断由服务器B.php返回的信息,让其两种结果输出两种不同的颜色呢。

字数限制原因。给出部份代码如下:(请有能力的帮忙修改加个判断,谢谢)

<script type="text/javascript">
window.onerror=function(errorMessage,errorUrl,errorNum)
{
alert(errorMessage+errorUrl+errorNum);
}
var xmlHttp;
function createXmlHttp()
{
//if(window.ActiveXObject)
//xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
// else
// xmlHttp=new XMLHttpRequest();
if (window.ActiveXObject) { // IE浏览器
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
} else {
xmlHttp=new XMLHttpRequest();
xmlHttp.overrideMimeType("text/xml");
}
if (!xmlHttp) {
window.alert("can not create XMLHttpRequest object.");
return false;
}

}
function startRequest()
{
try
{
createXmlHttp();
var url="B.php";
var postedData=getRequestBody(document.forms["form1"]);

xmlHttp.open("post",url,true);
xmlHttp.setRequestHeader("content-length",postedData.length);
xmlHttp.setRequestHeader("content-type","application/x-www-form-urlencoded");//post提交设置项
xmlHttp.onreadystatechange =onComplete;
xmlHttp.send(postedData);
}
catch(e)
{
alert(e.message);
}
}
function onComplete()
{
if(xmlHttp.readyState==4&&xmlHttp.status==200)
{
//显示结果
// document.getElementById("divResult").innerText=xmlHttp.responseText;

if (window.ActiveXObject)
document.getElementById("divResult").innerText=xmlHttp.responseText;
else
document.getElementById("divResult").textContent=xmlHttp.responseText;
}
}
function getRequestBody(oForm)
{
var aParams=new Array();
for(var i=0;i<oForm.elements.length;i++)
{
var sParam=encodeURIComponent(oForm.elements[i].id)
sParam+="=";
sParam+=encodeURIComponent(oForm.elements[i].value);
aParams.push(sParam);
}
return aParams.join("&");
}
</script>
展开
 我来答
tz6060996
2011-04-12 · TA获得超过2283个赞
知道大有可为答主
回答量:1171
采纳率:100%
帮助的人:1623万
展开全部
B.PHP只输出YES或NO两种字符,然后在a.html中将document.getElementById("divResult").textContent=xmlHttp.responseText;
这句改成:
if (xmlHttp.responseText == "YES") {
document.getElementById("divResult").style.color = "green";
}
else {
document.getElementById("divResult").style.color = "red";
}

注意替换的时候,外层加大括号
更多追问追答
追问
{if (xmlHttp.responseText == "YES") {
document.getElementById("divResult").style.color = "green";
}
else {
document.getElementById("divResult").style.color = "red";
}
}

那句替换成这样后,输出是黑色。没有绿色也没有红色,看来是没有起作用?我还想问:如果返回字符不是YES这三个字母,而是一句话(有空格)的话,是否还可以如你这般修改?
追答
黑色?如果这段代码被执行,要不是绿色要不就是是红色,是黑色只能说明这段代码没执行。调试一下,看一下onComplete()这个回调函数是否被执行。
linkin8902
2011-04-12
知道答主
回答量:89
采纳率:0%
帮助的人:23.9万
展开全部
你可以用下google 的开源框架 gosn 结合 jquery ,搞定一切 ajax
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逐风者雷霆之惹
2011-04-12 · TA获得超过976个赞
知道小有建树答主
回答量:523
采纳率:0%
帮助的人:731万
展开全部
对不起,我JS实在是有点儿不太好
不过我可以告诉你大概的方法
if (那个返回值 = error ){
var sss = 加上样式以后的那个变量
document.getElementById("divResult").innerText=sss;
}else{
方法跟上面一样
}
给你一个以前写的JS判断的吧,希望能够帮到你

if(sss=="error"){
document.getElementById("divResult").innerText=fontcolor("red").fontsize(6)+" "+"ERROR".fontcolor("red");
}

----------------------------------------------------------------------------------------------------------------

if (xmlHttp.responseText == "YES") {
document.getElementById("divResult").style.color =fontcolor("red").fontsize(6)+" "+"ERROR".fontcolor("red");
}
else {
document.getElementById("divResult").style.color =fontcolor("green").fontsize(6)+" "+"OK".fontcolor("green");
}

试试这个。。。

你可以试着在另一个页面返回0和1
在这个页面判断
追问
和楼上那位网友的一样,似乎这段判断代码并没有被执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式