Forenindex » Programmierung/Entwicklung » JavaScript » Formularabfrage mit document.write in formatierte Seite mit zurück-Link

Formularabfrage mit document.write in formatierte Seite mit zurück-Link

matwic
Beiträge gesamt: 5

19. Mär 2008, 23:47
Bewertung:

gelesen: 2779

Beitrag als Lesezeichen
Hallo!

1. Wenn ich folgendes Script für eine Formularabfrage verwende, schreibt es die Meldung "Folgende Angaben sind notwendig:" oder "EMail muss eine gültige Email-Adresse enthalten." in ein neues unformatiertes Dokument, anstatt in meine mit CSS formatierte Seite. Kann ich mein CSS irgendwie in das Ausgabedokument packen oder die Meldung in eine eigene formatierte Seite (z.B. form_error.html) mit back-link schreiben lassen?

2. Das mit dem back-link (Link zurück zum Formular um die Angaben zu korrigieren) ist gleich die zweite Frage: Wie stelle ich das an?

3. Und wie formatiere ich den Ausgabetext, wenn ich möchte, dass die fehlenden Angaben untereinander in meiner allgemeinen Schriftformatierung aufgelistet werden? Im Moment werden sie unformatiert nebeneinander dargestellt.

Sind diese Dinge mit Js überhaupt möglich?

Vielen Dank für eure Hilfe.
matwic

Und hier das Script:

Code
<script type="text/javascript"> 
<!--
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' muss eine gültige Email-Adresse enthalten.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+'\n'; }
} if (errors) document.write('Folgende Angaben sind notwendig:\n'+errors);
document.MM_returnValue = (errors == '');
} }
//-->
</script>


(Dieser Beitrag wurde von oesi50 am 21. Mär 2008, 17:15 geändert)

Formularabfrage mit document.write in formatierte Seite mit zurück-Link

SabineP
Beiträge gesamt: 7586

20. Mär 2008, 09:07
Bewertung:

gelesen: 2757

Beitrag als Lesezeichen
Hallo matwic,

lies mal hier nach:

http://aktuell.de.selfhtml.org/...tuebergabe/index.htm
Gruß Sabine

Formularabfrage mit document.write in formatierte Seite mit zurück-Link

matwic
Beiträge gesamt: 5

21. Mär 2008, 10:49
Bewertung:

gelesen: 2732

Beitrag als Lesezeichen
Hallo Sabine!

Danke dir für den Link. Irgendwie sehe ich einen möglichen Lösungsansatz mit window.name, aber ich weiss ehrlich gesagt nicht, wie ich das konkret für meinen Fall umsetzen könnte. Bin leider kein Programmierer, der so etwas auf Anhieb verstehen würde, gerade weil es eben "nur" ein (Java)Script ist :-).
Also bei diesem storage.js blick ich wirklich nicht mehr durch.

Irgendwie muss wohl das Resultat der Abfrage (die ein eigenes Js ist, welches zuerst normal abläuft) mit storage.getAll "herausgepickt" werden und mittels location.href in das html-Dokument mit dem zurück-Link geschrieben/übergeben werden. Klingt für mich ziemlich kompliziert.

Ich finde leider auch nirgends ein Beispiel einer Werübergabe in Zusammenhang mit einer Formularabfrage. Ich kann in meinem Fall ja nicht direkt einen Wert übergeben und es handelt sich auch nicht um den eingegebenen Wert. Erst die Abfrage liefert den Wert und die Übergabe findet nur im Falle einer Fehleingabe statt, also nicht in jedem Fall wie in diesem Beispiel http://aktuell.de.selfhtml.org/...index.htm#windowname.

Vielleicht hast du ja noch weitere Tipps zur Umsetzung meines Beispiels auf Lager? Solche die leicht verständlich sind oder quasi 1:1 übernommen werden können (wo es sich um denselben Fall handelt). Ich finde zu diesem Fall sehr wenig und wenn ich etwas finde, handelt es sich nicht um das selbe oder ich verstehe es nicht. Oder ist es gar umständlicher das Resultat mit Js herbeizuführen als sonstwie?

Danke jedenfalls für jede Hilfestellung!

matwic

(Dieser Beitrag wurde von matwic am 21. Mär 2008, 10:52 geändert)

Formularabfrage mit document.write in formatierte Seite mit zurück-Link

SabineP
Beiträge gesamt: 7586

21. Mär 2008, 14:37
Bewertung:

gelesen: 2707

Beitrag als Lesezeichen
Hallo matwic,

was willst Du eigentlich machen?
Formulareingaben mit Javascript prüfen?

Wenn ja, dann findest Du hier genügend Beispiele:
http://aktuell.de.selfhtml.org/...script/formkontrolle
http://de.selfhtml.org/...formulareingaben.htm

Wenn Du nach Absenden des Formulars eine Auswertung der falschen bzw. fehlenden Formulardaten haben möchtest, dann sollte diese Aufgabe Dein serverseitiges Script erledigen, das die Formulardaten verarbeitet.
Gruß Sabine

Formularabfrage mit document.write in formatierte Seite mit zurück-Link

matwic
Beiträge gesamt: 5

21. Mär 2008, 15:41
Bewertung:

gelesen: 2701

Beitrag als Lesezeichen
Das Script zur Überprüfung steht ja in meinem ersten Beitrag. Es geht nun um die Ausgabe des Resultats dieser Überprüfung (z.B. "Geben Sie eine gültige E-Mail Adresse an"). In meinem Script wird diese Ausgabe mittels document.write in einem neuen leeren, weissen Dokument angezeigt, anstatt in meiner Seitenstruktur. Ich kann es natürlich mit einem alert machen, aber das möchte ich eben nicht.

Es geht konkret genau um dies:
"Bei einer Prüfung von Emailadressen, (...) werden die Werte in der Fehlermeldung mit ausgegeben. Den einzelnen Fehlern wird ein · und ein Leerzeichen vorangestellt und die Meldung mit alert() angezeigt."

oder

"Zuerst wird mit alert() jeweils in einem Meldungsfenster ausgegeben, was der Anwender falsch gemacht hat."

So steht es bei selfhtml.

Es geht nun darum, diesen Text, der im obigen Beispiel im alert erscheint, nach dem submit entweder neben dem Formular darzustellen, falls falsche Angaben gemacht wurden oder (besser!): dass der User bei Falschangaben auf eine Seite (in meiner Seitenstruktur, also nicht einfach eine weisse Seite, wo oben links der Text erscheint) weitergeleitet wird, wo die Fehler beschrieben sind (z.B. "Geben Sie eine gültige E-Mail Adresse an") und wo er dann auf "back" klicken kann um seine Angaben im Formular auf der vorherigen Seite zu berichtigen.

(Dieser Beitrag wurde von matwic am 21. Mär 2008, 15:51 geändert)

Formularabfrage mit document.write in formatierte Seite mit zurück-Link

SabineP
Beiträge gesamt: 7586

21. Mär 2008, 16:33
Bewertung:

gelesen: 2683

Beitrag als Lesezeichen
>> nach dem submit...

Schau in das action-Attribut Deines Formulars.
Genau dort befinden sich Deine Formulardaten nach dem Submit.
Und genau dort mußt Du die Formulardaten weiterverarbeiten.

>> Das Script zur Überprüfung steht ja in meinem ersten Beitrag.

Das Script beinhaltet lediglich die Funktion MM_validateForm.
Wie und wann diese Funktion aufgerufen wird ist nicht ersichtlich.
Gruß Sabine

(Dieser Beitrag wurde von SabineP am 21. Mär 2008, 16:34 geändert)

Formularabfrage mit document.write in formatierte Seite mit zurück-Link

matwic
Beiträge gesamt: 5

21. Mär 2008, 16:46
Bewertung:

gelesen: 2678

Beitrag als Lesezeichen
Tschuldige, hier die fehlenden Teile:

Code
<form name="formular" method="post" action="formular_script.php"> 


Code
<input type="submit" name="senden" onClick="MM_validateForm('Name','','R','Email','','RisEmail','Anfrage','','R');return document.MM_returnValue" class="senden" id="senden" value="senden" /> 


Wobei ich das (onClick) dann noch ändere und das ganze vom senden-Button wegnehmen und mit onSubmit in den oberen Teil verfrachten werde. Etwa so:

Code
<form action="formular_script.php" method="post" name="formular" onSubmit="MM_validateForm('Name','','R','Email','','RisEmail','Anfrage','','R');return document.MM_returnValue"> 


Aber ich glaube langsam wirds hier heller :-).

Heisst das nun, dass ich ich die Funktion MM_validateForm in die Datei formular_script.php schreiben muss, anstatt im kontakt.html, wo sich das Formular befindet?

matwic

Formularabfrage mit document.write in formatierte Seite mit zurück-Link

SabineP
Beiträge gesamt: 7586

21. Mär 2008, 17:24
Bewertung:

gelesen: 2665

Beitrag als Lesezeichen
>> Heisst das nun, dass ich ich die Funktion MM_validateForm in die Datei formular_script.php schreiben muss

Du mußt Dir eine PHP-Funktion schreiben, die die Formulardaten auswertet.
Denn mit Javascript kann der PHP-Interpreter nichts anfangen.
Gruß Sabine