Guten Abend alle!Ajax Anrufe in IE8 zeigt nicht alle Daten, Works in Firefox und IE9
Ich habe einen Ajax-Aufruf, der 5 'Echo' von einem PHP-Skript in ein div lädt. Das erste Echo erstellt ein verborgenes Formularfeld mit einer ID als Wert. der Rest sind oberflächlich und haben Links, um das div um die Seite zu bewegen.
In Firefox, die vollständigen Daten geladen werden, aber in IE, vermisst es das erste Echo, um nur die anderen Details anzuzeigen. Ich vermisse das versteckte Element, das ich als Identifikator benötige.
//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'>";
Wie auf der Erde kann IE verpassen selektiv eine Reihe von PHP ?! Es gibt absolut kein HTML für ein verstecktes Feld. Noch. Dies passiert nicht jedes Mal. Diese Funktion wird bis zu 25 mal für 25 verschiedene DIVs aufgerufen, und es wird funktionieren, einen Fehler in IE zu treffen.
Checked es in einem Formular etc .. keine Ahnung, was los ist!
Beispielquelle folgenden 3 Aufrufe davon in IE 8 :: Überprüfen Sie die 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>
Nach der Überprüfung Syntax wie empfohlen ::
<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();
}
jetzt nach Hause kommen und mit IE9 und es funktioniert gut, zumindest das nur IE8, dass sein geschehen auf , aber ich kann IE8 auf einem Windows 7 PC sogar im Kompatibilitätsmodus nicht installieren, so kurz, um virtualbox heraus zu bekommen, ich muss morgen debuggen fortsetzen.
Können Sie das Javascript posten? – Snuffleupagus
Wenn Sie einen Haltepunkt unter 'document.getElementById (elemin) .innerHTML = xmlhttp.responseText; 'setzen, enthält der responseText die Eingabezeile? – Snuffleupagus
das versteckte Eingabefeld scheint keine ID oder einen Namen zu haben. ist das absichtlich? – Spudley