晚上好!
我有一个Ajax调用,将4个'echo'从php脚本加载到div中。 第一个echo创建一个隐藏的表单字段,其中ID为值。 其余的都是肤浅的,并且有链接来移动页面周围的div。
在firefox中,加载了完整的数据,但在IE中,它错过了第一个回显,只显示其他细节。我错过了我需要的隐藏元素作为标识符。
//Some other PHP code..... the * and % in the value are delimiters for splitting a string later.
echo "<input type='hidden' value='*$substept,$subscon%'>";
echo "<a href='javascript:remcol($part)'>.-.</a>".$substept . "<a href='javascript:paddcolumn($part)'>.+.</a> <br> <a href='javascript:mleft($part)'><<</a>" . $subscon . "<a href='javascript:mright($part)'>>></a>";
echo "<br>Column title <br><input type='text' id='title' size = '10'>";
echo "<br>Column width ";
echo "<br><input type='text' id='tb' size = '10'>";
IE如何能够有选择地错过一行php?!隐藏字段绝对没有html。 然而。 这不会每次都发生。对于25个不同的DIV,这个函数被调用多达25次,并且它将在IE中失败。
检查其内部等等。不知道发生了什么!
IE 8中3次调用后的示例源::查看Div 03 HTML。
<DIV style="BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px solid" id=o1>productspgroup<INPUT value=*products,pgroup% type=hidden><A href="javascript:remcol(1)">.-.</A>products<A href="javascript:paddcolumn(1)">.+.</A> <BR><A href="javascript:mleft(1)"><<</A>pgroup<A href="javascript:mright(1)">>></A><BR>Column title <BR><INPUT id=title size=10><BR>Column width <BR><INPUT id=tb size=10></DIV>
<DIV style="BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px solid" id=o2>customerphone1<INPUT value=*customer,phone1% type=hidden><A href="javascript:remcol(2)">.-.</A>customer<A href="javascript:paddcolumn(2)">.+.</A> <BR><A href="javascript:mleft(2)"><<</A>phone1<A href="javascript:mright(2)">>></A><BR>Column title <BR><INPUT id=title size=10><BR>Column width <BR><INPUT id=tb size=10></DIV>
<DIV style="BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px solid" id=o3><A href="javascript:remcol(3)">.-.</A>products<A href="javascript:paddcolumn(3)">.+.</A> <BR><A href="javascript:mleft(3)"><<</A>price<A href="javascript:mright(3)">>></A><BR>Column title <BR><INPUT id=title size=10><BR>Column width <BR><INPUT id=tb size=10></DIV>
<DIV id=o4></DIV>
<DIV id=o5></DIV>
<DIV id=o6></DIV>
检查语法为advice ::
<DIV style="BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px solid" id=o1><A href="javascript:remcol(1)">.-.</A> customer <A href="javascript:paddcolumn(1)">.+.</A> <BR><A href="javascript:mleft(1)"><<</A>surname<A href="javascript:mright(1)">>></A><BR>Column title <BR><INPUT id=title size=10><BR>Column width <BR><INPUT id=tb size=10></DIV>
<DIV style="BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px solid" id=o2><INPUT value=*customer,email% type=hidden><A href="javascript:remcol(2)">.-.</A>customer<A href="javascript:paddcolumn(2)">.+.</A> <BR><A href="javascript:mleft(2)"><<</A>email<A href="javascript:mright(2)">>></A><BR>Column title <BR><INPUT id=title size=10><BR>Column width <BR><INPUT id=tb size=10></DIV>
<DIV style="BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px solid" id=o3><INPUT value=*customer,email% type=hidden><A href="javascript:remcol(3)">.-.</A>customer<A href="javascript:paddcolumn(3)">.+.</A> <BR><A href="javascript:mleft(3)"><<</A>email<A href="javascript:mright(3)">>></A><BR>Column title <BR><INPUT id=title size=10><BR>Column width <BR><INPUT id=tb size=10></DIV>
<DIV style="BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px solid" id=o4><INPUT value=*customer,email% type=hidden><A href="javascript:remcol(4)">.-.</A>customer<A href="javascript:paddcolumn(4)">.+.</A> <BR><A href="javascript:mleft(4)"><<</A>email<A href="javascript:mright(4)">>></A><BR>Column title <BR><INPUT id=title size=10><BR>Column width <BR><INPUT id=tb size=10></DIV>
<DIV id=o5></DIV>
Javascript:
function choosedata(cin){
cot = "so"+cin;
var strr="main.php?func=21&part=" + cin + "&step=" + counter[cin] + "&subs=";
colchange = 'o' + cin;
if (counter[cin] >=2){
strr = strr + document.getElementById(cot).value;
}
callajaxd(strr, colchange);
counter[cin]++;
}
function callajaxd(str,elemin) //URL String, Box to go in
{
if (str=="")
{
document.getElementById(elemin).innerHTML="";
var back = "";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
document.getElementById(elemin).innerHTML="<img src='loading.gif' />";
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(elemin).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET",str,true);
xmlhttp.send();
}
现在回家并使用IE9并且它工作正常,至少它发生的唯一IE8,但即使在兼容模式下我也无法在Windows 7 PC上安装IE8,因此无法获得虚拟机,我将不得不明天继续调试。
答案 0 :(得分:0)
只是一个想法,准确地获取您的语法并添加尾部斜杠:
<input type='hidden' value='*$substept,$subscon%' />
IE有时会成为一个婊子。但我不明白为什么只会剥离第一个。
答案 1 :(得分:0)
在你的jQuery ajax函数中尝试设置选项缓存:&#39; false&#39;
$.ajax({
url: 'blah.php',
type: 'post',
cache: 'false'
});
或者您可以将一些随机时间变量附加到网址,这会诱使IE认为网页是新的并且不会使用缓存版本。
$.ajax({
url: 'blah.php?foo=<?php echo time(); ?>'
});
希望这有助于...编辑:完全误解了这个问题..认为这是IE缓存ajax调用;)
答案 2 :(得分:0)
只是想一想,尝试将大括号中第一个echo中声明的变量包装起来:
echo "<input type='hidden' value='*{$substept},{$subscon}%' />";
我正在考虑将它们与元素分离。
答案 3 :(得分:0)
感谢您对此提供的所有帮助和建议。 看来这个问题,带有我所拥有的cPanel托管帐户。服务器在负载下遇到问题。 我自己去共享托管的错! 干杯!