PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seite geht nicht im IE, aber unter sämtlichen Linux-Browsern



ContainerDriver
30-09-2003, 13:50
Hallo,
ich habe ein kleines Problem. Meine Gästebuch (www.softwarefortux.de.vu -> Gästebuch) funktioniert nicht im IE (bzw. das Absenden eines neuen Beitrages).
Unter Linux funktioniert es in Opera (7.11), Konqueror (3.1) & Netscape (7).
Mir wurde berichtet (ich selber habe kein Win), dass wenn man auf den Absenden-Button drückt nichts passiert.
Als passt wahrscheinlich irgendetwas am form-Tag nicht, oder im JavaScript-Teil, der überprüft, ob etwas eingetragen wurde.

Könnte jemand den Code durchschauen und mir sagen, was daran falsch sein soll?

MfG

Florian



<html>
<head>
<script type="text/javascript">

function check_input()
{
for(i=0; i<document.forms[0].elements.length; i++)
{
if(document.forms[0].elements[i].value == "")
{
if (document.forms[0].elements[i].name=="area")
{
alert ("Du musst einen Text eingeben!");
}
else
{
if (document.forms[0].elements[i].name=="name")
{
alert("Du musst einen Namen eingeben!");
}
}
document.forms[0].elements[i].focus();
return false;
}
}
return true;
}

function include(t_value1,t_value2)
{
document.getElementById("area").value = document.getElementById("area").value + t_value1;
document.getElementById("area").focus();
document.getElementById("area").value = document.getElementById("area").value + t_value2;
}

function heading(t_value)
{
var buff1="<h"+t_value[t_value.selectedIndex].text+">";
var buff2="</h"+t_value[t_value.selectedIndex].text+">";
include (buff1,buff2);
}

function joggle(t_value)
{
var buff1="<div style='text-align:";//+t_value[t_value.selectedIndex].text+";'>";
var buff2;
switch (t_value[t_value.selectedIndex].text)
{
case "Links":
buff2="left";
break;

case "Zentriert":
buff2="center";
break;

case "Rechts":
buff2="right";
break;
}

buff1+=buff2+";'>";
include (buff1,"</div>");
}

function to_margin(t_value)
{
var buff1=prompt("Gib die Pixel an, die du Einrücken willst:","10");
if (buff1==null)
{
return;
}
var buff2;

switch(t_value[t_value.selectedIndex].text)
{
case "Links":
buff2="left";
break;

case "Rechts":
buff2="right";
break;
}
buff1="<div style='margin-"+buff2+":"+buff1+"px;'>";

include (buff1,"</div>");
}

function to_link()
{
var buff1=prompt("Zu welcher Seite willst du referenzieren (vergiss das Protokoll bitte nicht, z.B. http:// oder ftp://)?","http://");
if (buff1==null)
{
return;
}
buff1="<a href='"+buff1+"' title='"+buff1+"' target='blank'>";
include(buff1,"</a>");
}

</script>

</head>
<body>
<link rel="stylesheet" type="text/css" href="../css/default.css">

<div id="reiter" style ="position: absolute; top: 5px; left: 20px;">
Einen Beitrag schreiben...
</div>
<div id="rahmen"style="position: absolute; top: 25px; left: 25px;">
<br/>
<form onSubmit="return check_input();" onReset="return confirm('Willst du die Eingabefelder wirklick zurücksetzen?');"name="form1" method="post" action="send2.php">
Dein Name ist:
<input type="text" name="name"><br/><br/>
Dein Geschlecht:
<div style="margin-left:100px;">
<input type="radio" name="s" value="femal" checked>weiblich<br/>
<input type="radio" name="s" value="male">m&auml;nnlich<br/>
</div>
<br/>
Willst du deinen Beitrag in HTML verfassen<br/>(HINWEIS: JavaScript wird entfernt, also vergesst die "lustigen" alert()-Endlosschleifen)?
<div style="margin-left:100px;">
<input type="radio" name="html" value="false" checked title="HTML-Tags werden ingoriert (sie werden als normaler Text ausgegeben!).">Nein<br/>
<input type="radio" name="html" value="true" title="HTML-Tags werden berücksichtigt. HINWEIS: Nicht alle Tags stehen zur Verfügung (z.B. img, script,...)!">Ja<br/>
</div>
<br/>
<fieldset><legend>HTML-Tags</legend>
<select name="list1" size="0" title="Wähle eine Überschriftenkategorie aus und klicke dann auf »Überschrift«.">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<input type="button" value="Überschrift" onclick="heading(this.form.list1)" title="Die ausgewählte Überschriftenkategorie einfügen.">&nbsp;&nbsp;
<input type="button" value="FETT" onclick="include('<b>','</b>')" title="Fett gedruckten Text einfügen.">
<input type="button" value="kursiv" onclick="include('<i>','</i>')" title="Kursiv gedruckten Text einfügen.">
<input type="button" value="____" onclick="include('<u>','</u>')" title="Unterstrichenen Text einfügen.">&nbsp;&nbsp;
<input type="button" value="BIG" onclick="include('<big>','</big>')" title="Hervorheben">
<input type="button" value="small" onclick="include('<small>','</small>')" title="Klein formatieren">&nbsp;&nbsp;
<input type="button" value="\n" onclick="include('<br/>','')" title="Zeilenumbruch"><br/>

<select name="list2" size="0" title="Wähle die Ausrichtung aus und klicke auf »Ausrichten«.">
<option>Links</option>
<option>Zentriert</option>
<option>Rechts</option>
</select>
<input type="button" value="Ausrichten" onclick="joggle(this.form.list2)" title="Legt die Ausrichtung fest.">&nbsp;&nbsp;

<select name="list3" size="0" title="Wähle die Seite, von der aus eingerückt werden soll, und klicke auf »Einrücken...«.">
<option>Links</option>
<option>Rechts</option>
</select>
<input type="button" value="Einrücken..." onclick="to_margin(this.form.list3)" title="Rücke Text ein...">&nbsp;&nbsp;
<input type="button" value="Link..." onclick="to_link()" title="Füge einen Link ein">&nbsp;&nbsp;
</fieldset>
<br/>
Dein Beitrag:<br/>
<textarea id="area" name="area" rows="20" cols="60"></textarea><br/>
<div align="center">
<input type="submit" name="submit1" value="Absenden">
<input type="reset" value="Zur&uuml;cksetzen">
</div>
</form>
<br/>
Fehlt ein wichtiger HTML-Tag? softwarefortux <i>at</i> gmx.de
</div>

</body>
</html>

axeljaeger
30-09-2003, 14:37
http://axj.tuxipuxi.de/artikel/ie/

offe
30-09-2003, 16:41
Hallo,

vielleicht liegt es ja am:
<form onSubmit="return check_input();" onReset="return confirm('Willst du die Eingabefelder wirklick zurücksetzen?');"name="form1" method="post" action="send2.php">

vor name="form1" ein Leerzeichen! Dann hätte der IE mal Recht!

Offe

Jana
30-09-2003, 18:01
Es liegt an der Überprüfung: onSubmit="return check_input();"
Ich mach es immer folgendermaßen:


<form action="anmeldung_check.html" method="post">

<table width="100%" align="top" border="0" cellpadding="0" cellspacing="0">

<tr>
<td class="tbl_anmeldung_capt">
* Anrede
</td>
<td class="tpl_anmeldung_form">
<input type="radio" name="form[Anrede]" value="Herr" checked> Herr&nbsp;&nbsp;
<input type="radio" name="form[Anrede]" value="Frau"> Frau
</td>
</tr>....................

anmeldung_check.html


<?php
require("./header.php");


$fields = array(
Email => 'E-Mail',
Strasse_p => 'Strasse (privat)',
PLZ_p => 'PLZ (privat)',
Ort_p => 'Ort (privat)',
Telefon_p => 'Telefon (privat)',
Funktion => 'Sonstige Angaben'
);

$fillfields = array('Anrede', 'Vorname', 'Nachname', 'Email', 'Strasse', 'PLZ', 'Ort');


$failedfields = array();
foreach ($fillfields as $fillfield) {
if (!$form[$fillfield]) {
if ($fields[$fillfield]) {
array_push($failedfields, $fields[$fillfield]);
} else {
array_push($failedfields, $fillfield);
}
}
}




print "<div id='lay100' class='lay100'>

if (count($failedfields) > 0) {
print "Folgende Angaben fehlen:<br><br>\n";
foreach ($failedfields as $f) {
print "* " . $f . "<br>\n";
}
print "<br>Bitte gehen Sie zurück und füllen Sie das Formular vollständig aus.<br>\n";
}
else {

print "<form action=\"anmeldung_send.html\" method=\"post\">\n";

print "<table width=\"100%\" align=\"top\" border=\"0\">\n";

foreach ($form as $field => $value) {
print " <tr>\n";
print " <td class=\"lay100a\" width=\"35%\">\n";
if ($fields[$field]) {
print " <b>" . $fields[$field] . "</b>\n";
}
else {
print " <b>" . $field . "</b>\n";
}
print " </td>\n";
print " <td class=\"lay100b\">\n";
print " " . $value . "\n";
print " <input type=\"hidden\" name=\"form[" . $field . "]\" value=\"" . $value . "\">\n";
print " </td>\n";
print " </tr>\n";
}
print "</table><br>\n";
print "<input type=\"submit\" value=\"Anmeldung versenden\">\n";
print "</form>\n";
}
print "</div> ";
?>


</body>
</html>

ContainerDriver
02-10-2003, 14:11
Hi, also, ich hab den Fehler gefunden. Das Problem lag in der Überprüfung (JavaScript). Es wurden alle Elemente überprüft, also auch die Drop-Down Listen (die sollten eigentlich gar nicht überprüft werden). Bei IE sind die anscheinend immer =="" => es wird false zurückgeliefert. Ich hab die Übrprüfung umgeschreiben und jetzt gehts!!!

MfG

FLorian