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

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

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

matwic
Beiträge gesamt: 5

19. Mär 2008, 23:47
Beitrag # 1 von 8
Bewertung:
(2697 mal gelesen)
URL zum Beitrag
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)
X

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

SabineP
Beiträge gesamt: 7586

20. Mär 2008, 09:07
Beitrag # 2 von 8
Beitrag ID: #342423
Bewertung:
(2675 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo matwic,

lies mal hier nach:

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


als Antwort auf: [#342406]

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

matwic
Beiträge gesamt: 5

21. Mär 2008, 10:49
Beitrag # 3 von 8
Beitrag ID: #342613
Bewertung:
(2650 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#342423]
(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
Beitrag # 4 von 8
Beitrag ID: #342650
Bewertung:
(2625 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#342613]

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

matwic
Beiträge gesamt: 5

21. Mär 2008, 15:41
Beitrag # 5 von 8
Beitrag ID: #342655
Bewertung:
(2619 mal gelesen)
URL zum Beitrag
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.


als Antwort auf: [#342650]
(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
Beitrag # 6 von 8
Beitrag ID: #342663
Bewertung:
(2601 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#342655]
(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
Beitrag # 7 von 8
Beitrag ID: #342665
Bewertung:
(2596 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#342663]

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

SabineP
Beiträge gesamt: 7586

21. Mär 2008, 17:24
Beitrag # 8 von 8
Beitrag ID: #342669
Bewertung:
(2583 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#342665]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022
Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022