AJAX frisst bei IE tags
Sascha
- javascript
Hallo zusammen,
ich befasse mich seit kurzem mit AJAX und es funktioniert alles, nur mit dem IE nicht. Dieser scheint immer das Anfangs tag wegzulassen.
Es geht um ein DropDown-Menu das seine Einträge aus einer DB bekommt.
Hier mal der Quelltext:
HTML:~~~html
<select name="listenid" id="listenid" onfocus="showliste()"></select>
Javascript:~~~javascript
function showliste(){
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null){
alert ("Browser does not support HTTP Request");
return;
}
var url="liste.php";
url=url+"?sid="+Math.random();
xmlhttp.onreadystatechange=function (){
if (xmlhttp.readyState==4){
if (xmlhttp.status==200)
stateChanged(xmlhttp, "listenid");
}
};
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged(req, name){
document.getElementById(name).innerHTML=req.responseText;
}
function GetXmlHttpObject(){
/*@cc_on @*//*@if (@_jscript_version >= 5)
try {
return new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) {}
try {
return new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) {}
@end @*/
try {
return new XMLHttpRequest();}
catch (e) {}
return null;
}
PHP:~~~php
echo '<option value="0">Bitte Listenihalt auswählen</option>';
while($liste = mysql_fetch_assoc($result))
{
//Listeneinträge anlegen
echo '<option value="'.$liste["id"].'">'.$liste["name"].'</option>';
}
Soll-Ergebnis und Ist bei Firefox und Safari:
HTML:~~~html
<select name="listenid" id="listenid" onfocus="showliste()">
<option value="0">Bitte Listenihalt auswählen</option>
<option value="1">name1</option>
<option value="2">name2</option>
<option value="3">name3</option>
</select>
Ist bei IE
HTML:~~~html
<select name="listenid" id="listenid" onfocus="showliste()">
Bitte Listenihalt auswählen</option>
<option value="1">name1</option>
<option value="2">name2</option>
<option value="3">name3</option>
</select>
Kann mir jemand erklären warum das erste <option value="0"> fehlt?
Gruß Sascha
--
\---
Ein Fachmann ist jemand, der immer mehr über immer weniger weiß, bis er zuletzt alles über nichts weiß.
Hi,
ich befasse mich seit kurzem mit AJAX und es funktioniert alles, nur mit dem IE nicht. Dieser scheint immer das Anfangs tag wegzulassen.
Nicht immer, sondern in diesem Sonderfall - innerHTML eines Select-Feldes schreiben.
Kann mir jemand erklären warum das erste <option value="0"> fehlt?
Bei solchen Fehlern sollte man erst mal suchen, ob es sich vielleicht um einen bereits bekannten Bug handelt.
Google: ie innerhtml select first option führt mich sofort zu http://www.throbs.net/web/articles/IE-SELECT-bugs/#ieInnerHTMLproperty, was das ganze als bekannten Bug beschreibt, zu dem es sogar einen Artikel in der MS-Knowledgebase gibt, BUG: Internet Explorer Fails to Set the innerHTML Property of the Select Object.
MfG ChrisB
Hallo,
na das nenn ich mal eine Antwort. Kurz aber genau.
Da wäre ich ja nie draufgekommen dass es sich auch um einen Bug handeln könnte.
Vielen Dank
Hi,
Da wäre ich ja nie draufgekommen dass es sich auch um einen Bug handeln könnte.
der IE ist in dieser Hinsicht ein Denkmal an "Indiana Jones und der Tempel des Todes", genauer gesagt an die geheimen Gänge im Palast: Wo man geht und steht sind Bugs. Rechne immer damit, dass Du von Krabbelgetier überrollt wirst.
Cheatah
hi,
[..]Rechne immer damit, dass Du von Krabbelgetier überrollt wirst.
^ ahhh die Tagfresser!
SCNR;
Hotti
@@007sascha:
nuqneH
Da wäre ich ja nie draufgekommen dass es sich auch um einen Bug handeln könnte.
Echt nicht?
Wenn sich zwei verschiedene Browser verschieden verhalten, gibt drei Möglichkeiten:
(1) Das richtige Verhalten ist nicht spezifiziert, jeder Browser kann also tun, was er will.
(2) Das richtige Verhalten ist spezifiziert, beide verhalten sich verschieden falsch.
(3) Das richtige Verhalten ist spezifiziert, einer verhält sich richtig, einer falsch.
Möglichkeit (3) ist am häufigsten anzutreffen und in den meisten Fällen ist es dann der IE, der sich falsch verhält.
Qapla'
Nun ja dass er IE nicht immer alles so anzeigt wie gedacht, gewünscht und definiert war mir schon bekannt aber dass er auch einfach Teile weglassen kann ist mir neu. Aber man lernt ja nie aus ;) Daher kommt jetzt eine Bug-Suche zu meinem Gedankenworkflow hinzu.
Gruß Sascha
---
Ein Fachmann ist jemand, der immer mehr über immer weniger weiß, bis er zuletzt alles über nichts weiß.