IE6 setzt Javascript nicht um...
SarabianHH
- javascript
0 Struppi0 SarabianHH0 Struppi0 SarabianHH0 SarabianHH0 Struppi
Moin,
also ich habe das Problem, dass ich eine Seite mit einem einfachen Formular habe, welches über Javascript ausgewertet und dann an ein PHP-Script gesendet wird. Dort wird es dann in eine Datenbank geschrieben und je nach Erfolg oder Misserfolg wird im Browser eine Meldung ausgegeben.
Das Ganze funktioniert mit ganz primitiv geschriebenem HTTPRequest. Da ich, als ich die Seite damals geschrieben habe, kaum etwas von Scriptacoulus oder Prototype wusste.
Das Problem ist aber, dass ich nun gesagt bekam, dass das Ganze auf dem Internetexplorer 6 nicht laufen würde. Da man die Fehlermeldung "Zeile 2xx - Objekt erwartet" bekäme...
Im IE7 und Firefox etc funktioniert der Code hingegen einwandfrei...
Ich habe den HTML-Code validieren lassen und laut Tool und meiner eigenen Tüftelei scheint er ok. Zumindest ist mir nichts aufgefallen...
Nun bin ich etwas ratlos und hatte gehofft, dass einem von euch vielleicht etwas auffallen würde, wenn er den Code einmal anguckt.
Im IE ankommen tut der PHP generierte Code so:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<title></title>
<link rel="stylesheet" type="text/css" href="../css/reporting.css" >
<script type="text/javascript" src="prototype.js"></script>
<script src="scriptaculous.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
var xmlHttpObject = false;
if (typeof XMLHttpRequest != 'undefined')
{
xmlHttpObject = new XMLHttpRequest();
}
if (!xmlHttpObject)
{
try
{
xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
xmlHttpObject = null;
}
}
}
document.onkeydown = TasteGedrueckt;
document.onkeyup = TasteLosgelassen;
function verarbeiten()
{
if (xmlHttpObject.readyState == 4)
{
//alert("*"+xmlHttpObject.responseText.substring(0, xmlHttpObject.responseText.length-1)+"*");
if(xmlHttpObject.responseText.substring(0, xmlHttpObject.responseText.length-1) == 'Fehler')
{
alert(unescape('Datensatz konnte nicht eingef�rden! M�cher Grund: Er ist schon in der Datenbank angelegt'));
}else{
alert(unescape('Datensatz eingef�);
document.getElementById('VORNAME').value = "";
document.getElementById('ID').value = "";
document.getElementById('ANREDE').value = "";
document.getElementById('TITEL').value = "";
document.getElementById('NAME').value = "";
document.getElementById('STRASSE').value = "";
document.getElementById('ANSCHRIFTZ2').value = "";
document.getElementById('DREILCODE').value = "";
document.getElementById('PLZ').value = "";
document.getElementById('ORT').value = "";
document.getElementById('TELPRIV').value = "";
document.getElementById('TELGESCH').value = "";
document.getElementById('FAX').value = "";
document.getElementById('EMAIL').value = "";
document.getElementById('POSTFACH').value = "";
document.getElementById('PLZZUPF').value = "";
document.getElementById('GEBDAT').value = "";
document.getElementById('KUTYP').value = "I";
}
}
}
function TasteGedrueckt (Ereignis) {
if (!Ereignis)
Ereignis = window.event;
if (Ereignis.which) {
Tastencode = Ereignis.which;
} else if (Ereignis.keyCode) {
Tastencode = Ereignis.keyCode;
}
}
function TasteLosgelassen (Ereignis) {
if (!Ereignis)
Ereignis = window.event;
if (Ereignis.which) {
Tastencode = Ereignis.which;
} else if (Ereignis.keyCode) {
Tastencode = Ereignis.keyCode;
}
if(Tastencode == 13){
abschicken();
}
}
function abschicken(){
var bigx = $('BigXtra').checked;
var DGB = $('DGB').checked;
//var Schwinges = $('Schwinges').checked;
var Sonnen = $('Sonnenklar').checked;
if (bigx == true) {
$('DBName').value = 'BigXtra_kunden';
bix='';
DGB='';
Schwinges='';
Sonnen='';
}else if (DGB == true) {
$('DBName').value = 'DGB_kunden';
bix='';
DGB='';
Schwinges='';
Sonnen='';
}else if (Sonnen == true) {
$('DBName').value = 'Sonnenklar_kunden';
bix='';
DGB='';
Schwinges='';
Sonnen='';
}else{
alert('Bitte eine Datenbank angeben!');
return;
}
var vorname = document.getElementById('VORNAME').value;
var id = document.getElementById('ID').value;
var anrede = document.getElementById('ANREDE').value;
//var kunr = document.getElementById('KUNR').value;
var titel = document.getElementById('TITEL').value;
var nachname = document.getElementById('NAME').value;
var strasse = document.getElementById('STRASSE').value;
var anschrift2 = document.getElementById('ANSCHRIFTZ2').value;
var dreilcode = document.getElementById('DREILCODE').value;
var plz = document.getElementById('PLZ').value;
var ort = document.getElementById('ORT').value;
var telpriv = document.getElementById('TELPRIV').value;
var telgesch = document.getElementById('TELGESCH').value;
var fax = document.getElementById('FAX').value;
var email1 = document.getElementById('EMAIL').value;
var postfach = document.getElementById('POSTFACH').value;
var plzzupf = document.getElementById('PLZZUPF').value;
var gebdat = document.getElementById('GEBDAT').value;
var kutyp = document.getElementById('KUTYP').value;
//var adresskenn = document.getElementById('select').value;
var omnikey = vorname.substring(0,3).toUpperCase()+nachname.substring(0,3).toUpperCase()+strasse.substring(0,5).toUpperCase()+ort.substring(0,5).toUpperCase()+telpriv.substring(0,5);
var daten = '&Vorname='+vorname+'&Anrede='+anrede+'&Titel='+titel+'&Name1='+nachname+'&Strasse='+strasse+'&AdrZusatz='+anschrift2+'&LKZ='+dreilcode+'&PLZ='+plz+'&Ort='+ort+'&TelPriv='+telpriv+'&TelGesch='+telgesch+'&FAX='+fax+'&Email='+email1+'&Postfach='+postfach+'&Plzzupf='+plzzupf+'&GebDatum='+gebdat+'&Status='+kutyp+'&DATENBANK='+$('DBName').value+'&OmniKey='+omnikey;
// alert(daten);
xmlHttpObject.open('post','eintraganlegen.php');
xmlHttpObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttpObject.onreadystatechange = verarbeiten;
xmlHttpObject.send(daten);
}
</script>
<div id="container">
<div id="header">
</div>
<ul id="mainmenu">
<li>Vorlage</li>
</ul>
<div id="content">
<a href='../logout.inc.php'> <img src='../grafik/loeschen.png' alt='Logout' border=0>Logout</a>
  | 
<a href='../startseite/start.php'> Menü</a>
<br>
<center>
<div id="Eingabezeile" style="margin: 3em 0em 3em 10em;">
<form method="post" action="interes.php" name="eingabeform" id="eingabeform">
<input type="hidden" value="" name="ID" id="ID">
</form>
<div id="Datenbankbuttons" style="margin:-2em 0em 0em -7em; padding: 0em 1em 1.5em 0em;">
<form id="Datenbank" name="Datenbank" method="post" action="" >
<input type="radio" name="Datenbank" value="BigXtra" id="BigXtra" > BigXtra
<br>
<input type="radio" name="Datenbank" value="DGB" id="DGB" > DGB
<br>
<input type="radio" name="Datenbank" value="Sonnenklar" id="Sonnenklar" > Sonnenklar
</form>
</div>
<form name="form1" action="#">
<table style="font: 12px AaronBoldExpd," id="Eingabetabelle">
<tr><td></td><td></td><td>ORT: </td><td><input id="ORT" type="text" size="40" value=""></td></tr>
<tr><td>Anrede: </td><td><input id="ANREDE" name="ANREDE" type="text" size="40" value=""></td><td>TEL_PRIV: </td><td><input id="TELPRIV" type="text" size="40" value=""></td></tr>
<tr><td>Titel: </td><td><input id="TITEL" name="TITEL" type="text" size="40" value=""></td><td>TEL_GESCH: </td><td><input id="TELGESCH" type="text" size="40" value=""></td></tr>
<tr><td>Vorname: </td><td><input id="VORNAME" name="VORNAME" type="text" size="40" value=""></td><td>FAX: </td><td><input id="FAX" type="text" size="40" value=""></td></tr>
<tr><td>Nachname: </td><td><input id="NAME" name="NAME" type="text" size="40" value=""></td><td>EMAIL: </td><td><input id="EMAIL" type="text" size="40" value=""></td></tr>
<tr><td>Strasse: </td><td><input id="STRASSE" name="STRASSE" type="text" size="40" value=""></td><td>POSTFACH: </td><td><input id="POSTFACH" type="text" size="40" value=""></td></tr>
<tr><td>AdrZusatz: </td><td><input id="ANSCHRIFTZ2" type="text" size="40" value=""></td><td>PLZ_ZU_PF: </td><td><input id="PLZZUPF" type="text" size="40" value=""></td></tr>
<tr><td>3LCode: </td><td><input id="DREILCODE" type="text" size="40" value=""></td><td>GEB_DAT: </td><td><input id="GEBDAT" type="text" size="40" value=""></td></tr>
<tr><td>PLZ: </td><td><input id="PLZ" type="text" size="40" value=""></td><td>KU_TYP: </td><td><input id="KUTYP" disabled type="text" size="40" value="I"></td></tr>
</table>
<input type = "hidden" name="Datenbank" id="DBName">
</form>
</div>
<div style="margin: 0em 0em 0em 32em;"><input type="button" onclick="javascript:abschicken();" id="submitknopf" value="Absenden"></div>
</center>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
Das Ganze funktioniert mit ganz primitiv geschriebenem HTTPRequest. Da ich, als ich die Seite damals geschrieben habe, kaum etwas von Scriptacoulus oder Prototype wusste.
und trotzdem einbindest?
Der Code ist grenzwertig. Zumal wenn man weiß, was diese Bibliotheken eigentlich können.
Da du hier beim posten schon Probleme mit der Kodierung von Zeichen hast - evtl. liegt der Fehler daran. Der IE meckert schnell, wenn HTML und JS Quellen nicht mit der gleichen Kodierung abgespeichert wurden.
Struppi.
»» Das Ganze funktioniert mit ganz primitiv geschriebenem HTTPRequest. Da ich, als ich die Seite damals geschrieben habe, kaum etwas von Scriptacoulus oder Prototype wusste.
und trotzdem einbindest?
Der Code ist grenzwertig. Zumal wenn man weiß, was diese Bibliotheken eigentlich können.Da du hier beim posten schon Probleme mit der Kodierung von Zeichen hast - evtl. liegt der Fehler daran. Der IE meckert schnell, wenn HTML und JS Quellen nicht mit der gleichen Kodierung abgespeichert wurden.
Struppi.
Die habe ich zum testen vorhin einfach mal mit eingebunden um zu testen, ob es mit Prototype anders läuft, tut es aber leider nicht.
Desweiteren denke ich nicht, dass ich mich im Ton vergriffen habe, deine Art zu antworten ist also "grenzwertig", nicht zu sagen unreif...
Desweiteren denke ich nicht, dass ich mich im Ton vergriffen habe, deine Art zu antworten ist also "grenzwertig", nicht zu sagen unreif...
Wie meinst du das?
Du wirfst uns einen ellenlangen Code, ohne wirkliche Fehlerbeschreibung, vor und erwartest, dass wir mit einem Blick erkennen was du falsch machst?
Ich erkenne nur, dass der Code ziemlich mies ist, wie du selbst andeutest _und_ ich habe dir einen Tipp gegeben, der mir bei einem IE Problem sehr geholfen hat. Anstatt darauf einzugehen reitest du auf einem Wort rum? Kann es sein, dass du etwas dünnhäutig bist?
Struppi.
»» Desweiteren denke ich nicht, dass ich mich im Ton vergriffen habe, deine Art zu antworten ist also "grenzwertig", nicht zu sagen unreif...
Wie meinst du das?
Du wirfst uns einen ellenlangen Code, ohne wirkliche Fehlerbeschreibung, vor und erwartest, dass wir mit einem Blick erkennen was du falsch machst?
Ich erkenne nur, dass der Code ziemlich mies ist, wie du selbst andeutest _und_ ich habe dir einen Tipp gegeben, der mir bei einem IE Problem sehr geholfen hat. Anstatt darauf einzugehen reitest du auf einem Wort rum? Kann es sein, dass du etwas dünnhäutig bist?Struppi.
Nein, das erwarte ich keinesfalls, was ich "erwarte", wenn man in einem freiwilligem Forum von so etwas reden kann, dann ist es kein verstecktes "Omg was für ein Müll".
Ich habe den Code deswegen in der Gänze gepostet, da ich nicht wusste ob sonst ersichtlich ist, was ich damit bezweckt habe.
Das es mit nem Ajax.request sicher sauberer gegangen wäre und ich die Formfelder auch mit $F hätte abfragen können ist mir klar.
Du tust so, als hätte ich das hier einfach mal hinvomiert und hätte jetzt gern gleich mal ne Lösung. Das ist mitnichten so.
Nur der Subtext hat mich genervt.
Nichts destotrotz hattest du Recht und ich bedanke mich sehr herzlich für die Hilfe. =)
Es lang in der Tat an dem überlesenen UTF-8 im Charset, auf Iso gehts wunderbar.
Danke.
» Du wirfst uns einen ellenlangen Code, ohne wirkliche Fehlerbeschreibung, vor und erwartest, dass wir mit einem Blick erkennen was du falsch machst?
Nein, das erwarte ich keinesfalls, was ich "erwarte", wenn man in einem freiwilligem Forum von so etwas reden kann, dann ist es kein verstecktes "Omg was für ein Müll".
Das hast du doch selbst geschrieben?
Das Ganze funktioniert mit ganz primitiv geschriebenem HTTPRequest. Da ich, als ich die Seite damals geschrieben habe, kaum etwas von Scriptacoulus oder Prototype wusste.
Und wenn man die Frameworks nur halbwegs kennt (wie ich z.b.) und dann deinen Code sieht, dann merkt man dass diese Aussage richtig ist. Dieser Code ist grenzwertig, da du einige hundert KB Framework Code einbindest, um dann letztlich eine Funktion zu verwenden und Andere, die die Frameworks meines Wissens auch können, primitiv nachzubauen. Das war also lediglich eine Unterstreichung deiner eigenen Aussage.
Das es mit nem Ajax.request sicher sauberer gegangen wäre und ich die Formfelder auch mit $F hätte abfragen können ist mir klar.
Da das nicht das Thema deiner Frage war, bin auch darauf nicht weiter eingegangen. Zumal ich mich nicht damit auskenne.
Du tust so, als hätte ich das hier einfach mal hinvomiert und hätte jetzt gern gleich mal ne Lösung. Das ist mitnichten so.
Ich tu nicht so, sondern man könnte den Eindruck gewinnen. Soweit ich das sehe, wäre dein Problem gelöst gewesen, wenn du z.b. die Frameworks mal entfernt hättest. Zumindest hättest du einen Anhaltspunkt gehabt.
Oder du hättest auch versuchen können uns zu helfen, wenn du die Zeile der Fehlermeldung markierst (was in dem Fall nicht so einfach gewesen wäre, da der IE nicht sagt in welcher Datei der Fehler auftritt).
Nur der Subtext hat mich genervt.
Naja mich letztendlich auch, da ich dir ja von Anfang versucht habe zu helfen und deine Aufregung sich nur auf meine Bestätigung deiner Aussage bezieht.
Struppi.