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> 展开
如果在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> 展开
3个回答
展开全部
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";
}
注意替换的时候,外层加大括号
更多追问追答
追问
{if (xmlHttp.responseText == "YES") {
document.getElementById("divResult").style.color = "green";
}
else {
document.getElementById("divResult").style.color = "red";
}
}
那句替换成这样后,输出是黑色。没有绿色也没有红色,看来是没有起作用?我还想问:如果返回字符不是YES这三个字母,而是一句话(有空格)的话,是否还可以如你这般修改?
追答
黑色?如果这段代码被执行,要不是绿色要不就是是红色,是黑色只能说明这段代码没执行。调试一下,看一下onComplete()这个回调函数是否被执行。
展开全部
你可以用下google 的开源框架 gosn 结合 jquery ,搞定一切 ajax
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对不起,我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
在这个页面判断
不过我可以告诉你大概的方法
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
在这个页面判断
追问
和楼上那位网友的一样,似乎这段判断代码并没有被执行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询