PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : scroll = "no" nur im IE?!


Stoevi
04.03.2003, 12:13:05
Hallo,

kennt nur der IE Browser den Befehl scroll="no" im Body Tag?
Habe im Body Tag der Datei eines Kontakt Formulars ein scroll="no" eingebaut damit man nicht beide Meldungen ("Es müssen noch folgende..." und "Danke für..."), die ja mit "if - else" abgefragt werden, lesen kann.
Im IE klappt das ja auch, aber NS läßt das scrollen trotzdem zu, was natürlich nicht so schön ist...
Wie schaffe ich da Abhilfe?!

Frank

Ben20
04.03.2003, 12:59:10
Ich würde es mit Stylesheets versuchen, aber warum das Scollen überhaupt abstellen! Das schränkt den User schon arg ein, wenn Du ihm eine nützliche und liebgewonnen Funktion seines Browsers klaust!

Stoevi
04.03.2003, 13:06:16
Ich würde es mit Stylesheets versuchen,

für Netscape? Das gäbe doch bestimmt nur neue Probleme, oder?

aber warum das Scollen überhaupt abstellen! Das schränkt den User schon arg ein, wenn Du ihm eine nützliche und liebgewonnen Funktion seines Browsers klaust!

geht leider nur so... die PHP Datei, die aufgerufen wird, wenn das Formular abgeschickt wurde, enthält sowohl die Fehlermeldung, dass evtl. einige Felder nicht ausgefüllt wurden, als auch die "Dankesmeldung", dass sich der Betreiber der Website in Kürze mit dem User in Verbindung setzen wird (verbunden durch eine if, else Abfrage)...

Ben20
04.03.2003, 13:09:09
geht leider nur so... die PHP Datei, die aufgerufen wird, wenn das Formular abgeschickt wurde, enthält sowohl die Fehlermeldung, dass evtl. einige Felder nicht ausgefüllt wurden, als auch die "Dankesmeldung", dass sich der Betreiber der Website in Kürze mit dem User in Verbindung setzen wird (verbunden durch eine if, else Abfrage)...


Bitte wie?


$fehler = "";

if($formular_email == "") {

$fehler = "Sie haben keine E-Mailadresse eingeben";

}


if($fehler == "") {

echo "Danke alles Richtig";

}
else {

echo "Es ist ein Fehler aufgetreteten! <br />" . $fehler;

}


Schon bekommt der User entweder das eine oder das Andere zu sehen und Du kannst ihm seinen Scrollbalken lassen!

Stoevi
04.03.2003, 16:09:53
Original geschrieben von Ben20


Bitte wie?


$fehler = "";

if($formular_email == "") {

$fehler = "Sie haben keine E-Mailadresse eingeben";

}


if($fehler == "") {

echo "Danke alles Richtig";

}
else {

echo "Es ist ein Fehler aufgetreteten! <br />" . $fehler;

}


Schon bekommt der User entweder das eine oder das Andere zu sehen und Du kannst ihm seinen Scrollbalken lassen!

nee nee, nicht ganz so... ;-) Werf einfach mal 'nen Blick auf http://www.petzolt-raumgestaltung.de (nach Möglichkeit mit einem Netscape Browser) und gehe dann auf KONTAKT. Wenn Du dort auf senden klickst (ohne Angaben zu machen), siehst Du schon was ich meine (Stichwort "Scroll-Leiste")

Ben20
04.03.2003, 16:31:11
Also ich habs mir angeschaut (mit IE und Opera - NN habe ich nicht da), aber ich verstehe immer noch nicht wo das Problem ist. Wenn alles Richtig ist, gibst Du den Kasten mit "Vielen Dank ... " und wenn was falsch ist, dann eben den anderen Kasten!

Gehe mal auf www.bazubi.de -> Kontakt und klick auf Abschicken ohne was einzutragen und einmal mit einem Eintrag (keine Sorge, die Mail geht an mich!) - dann siehst Du was ich meine. Die jeweiligen Antworten werden auch nur von einer PHP Datei generiert! (P.S. Stör dich nicht an dem Layoutbug - ist mir auch gerade jetzt aufgefallen)

Stoevi
04.03.2003, 16:41:50
Original geschrieben von Ben20
Also ich habs mir angeschaut (mit IE und Opera - NN habe ich nicht da), aber ich verstehe immer noch nicht wo das Problem ist. Wenn alles Richtig ist, gibst Du den Kasten mit "Vielen Dank ... " und wenn was falsch ist, dann eben den anderen Kasten!
Ja, schon - allerdings kann man im Opera nach dem absenden die Datei scrollen und sieht dann auch die andere Nachricht

Gehe mal auf www.bazubi.de -> Kontakt und klick auf Abschicken ohne was einzutragen und einmal mit einem Eintrag (keine Sorge, die Mail geht an mich!) - dann siehst Du was ich meine. Die jeweiligen Antworten werden auch nur von einer PHP Datei generiert! (P.S. Stör dich nicht an dem Layoutbug - ist mir auch gerade jetzt aufgefallen)

hab's grad mal probiert - genauso soll es sein :-)
Wie sieht das bei Dir genau aus? Wieviele Dateien sind das z.B.?
Ich habe eine form.php (die das Formular enthält) und eine send.php, in der die Fehlermeldung und Dankesnachricht enthalten ist (so nach dem Motto: if $errormessage --> zeige eine Tabelle mit der Fehlermeldung; else --> zeige eine Tabelle mit der Dankesmeldung und verschicke die Daten

Ben20
04.03.2003, 16:44:57
(so nach dem Motto: if $errormessage --> zeige eine Tabelle mit der Fehlermeldung; else --> zeige eine Tabelle mit der Dankesmeldung und verschicke die Daten


Du hast Dir die Lösung gerade selbst erarbeitet! ;-)

Ich habe auch nur zwei Dateien (eigentlich geht es auch mit nur 1 Datei) Die 1. enthält das Formular in reinem HTML, die zweite übernimmt die Verarbeitung der Daten!

Stoevi
04.03.2003, 16:49:40
Original geschrieben von Ben20


Du hast Dir die Lösung gerade selbst erarbeitet! ;-)

Ich habe auch nur zwei Dateien (eigentlich geht es auch mit nur 1 Datei) Die 1. enthält das Formular in reinem HTML, die zweite übernimmt die Verarbeitung der Daten!

ja, aber genau DAS ist mein Problem. Dadurch, das die Verarbeitung ALLER Daten bei mir in der send.php stattfindet, werden auch beide Tabellen mit den Ausgabe-Meldungen untereinander im Opera oder Netscape angezeigt (wenn man scrollt)...

Ben20
04.03.2003, 16:55:45
Ich formuliere meinen 2 Beitrag nochmal um, vielleicht wars mißverständlich:

Du gehst alle übermittelten Werte durch und prüfst ob sie richtig oder falsch sind, wenn Du einen Falschen findest, setzt und eine Prüfvar auf "false" - Und dies Var prüfst Du dann. WEnn Sie auf false steht, ist irgendwo ein Fehler, wenn Sie auf true steht nicht.

False = Fehler zeigen
True = Senden und Danke sagen!


$allesrichtig = true;

if($formularwert1 == "") { // User hat Feld 1 nicht ausgefüllt

$allesrichtig = false;

}

if($formularwert2 == "") { // User hat Feld 2 nicht ausgefüllt

$allesrichtig = false;

}

usw...

if($allesrichtig == true) {

Mail senden Danke sagen!

}
else {

User auffordern das Formular richtig auszufüllen!

}


Wenn Du das umsetzt bekommt der User immer nur die eine oder die andere Meldung! Jetzt verstanden?

Stoevi
04.03.2003, 17:33:28
Original geschrieben von Ben20
Ich formuliere meinen 2 Beitrag nochmal um, vielleicht wars mißverständlich:

Du gehst alle übermittelten Werte durch und prüfst ob sie richtig oder falsch sind, wenn Du einen Falschen findest, setzt und eine Prüfvar auf "false" - Und dies Var prüfst Du dann. WEnn Sie auf false steht, ist irgendwo ein Fehler, wenn Sie auf true steht nicht.

False = Fehler zeigen
True = Senden und Danke sagen!


$allesrichtig = true;

if($formularwert1 == "") { // User hat Feld 1 nicht ausgefüllt

$allesrichtig = false;

}

if($formularwert2 == "") { // User hat Feld 2 nicht ausgefüllt

$allesrichtig = false;

}

usw...

if($allesrichtig == true) {

Mail senden Danke sagen!

}
else {

User auffordern das Formular richtig auszufüllen!

}


Wenn Du das umsetzt bekommt der User immer nur die eine oder die andere Meldung! Jetzt verstanden?

Das ist im Prinzip ja genau das, was ich schon mache...
Bei mir ist die Abfrage diese:

$err = 0;
$errormessage = "Das Formular wurde nicht vollständig ausgefüllt! Die folgenden Felder müssen umbedingt ausgefüllt werden, damit wir Ihre Anfrage beantworten können: <br><br>";
if($name == ""){$errormessage .= Name<br>"; $err++;}
if($email == ""){$errormessage .= Email Adresse<br>";$err++;}
if($nachricht == ""){$errormessage .= Nachricht<br> ";$err++;}
$errormessage .= "<br>Bitte ergänzen Sie das Formular mit den fehlenden Angaben<br>und schicken Sie es erneut ab.<br><br>";

if($err >= 1)

{

?>

FEHLERMELDUNG

<?php

}
else
{

?>


<?php

$err = 0;

DATEN ABSCHICKEN

}

?>
DANKESMELDUNG AUSGEBEN
<?php

}

?>


}

?>

Oder sehe ich das falsch????

Ben20
04.03.2003, 17:37:46
Prinzipiell schon, nur hast Du die Klammer der Else Anweisung zu früh wieder zu gemacht - dadurch wie die Dankesmeldung immer anzeigt! Setz die enstprechende Klammer unter die Dankesmeldung und es sollte gehen!

Stoevi
04.03.2003, 17:48:37
soviel Aufwand für wieder mal nur eine falsch gesetzte Klammer ;-)
Besten Dank - jetzt funktioniert's!!!