SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 18.07.2008, 12:43   #1
TP-Junior
 
Registriert seit: Jul 2008
Walter-Wodka macht alles soweit korrekt

Ablauf Formular


Hallo allerseits,

ich bin PHP-Neuling und habe folgende Aufgabe und entsprechendes Problem:

Es ist ein Formular zu erstellen auf dem Daten eingetragen werden können. Die Daten sollen anschließend validiert und erst dann natürlich in die entsprechende DB geschrieben werden. Zu guter Letzt soll eine schicke Bestätigung mit den eingegebenen Daten dargestellt werden, die ausgedruckt werden kann.

Das Formular sowie die Bestätigung sind bereits fertig. Jedoch bereitet mir die Validierung und der Ablauf Kopfzerbrechen.
Die Bestätigung rufe ich über <form action="..." method="..."> auf. Jedoch soll dieses erst passieren, wenn die Validierung erfolgreich war.
War diese nicht erfolgreich soll natürlich der Fokus auf der Eingabemaske bestehen bleiben, solange bis alle Felder gefüllt sind.

Wie kann man dieses Problem am feinsten lösen?

Vielen Dank schonmal.
Walter-Wodka ist offline   Mit Zitat antworten


Alt 18.07.2008, 12:54   #2
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Wenn die Validierung *vor* dem Absenden passieren soll, geht das nur über JavaScript.

Allerdings könnte man das aushebeln, daher würde ich es auch direkt über PHP machen - einfach das Formular sich selbst aufrufen lassen, fehlerhafte Felder checken und jenachdem, ob es Fehler gibt oder nicht, die Daten speichern oder entsprechende Fehlermeldungen ausgeben.

Wie genau du das machen willst, ist dir dann überlassen. Du kannst simpel nur eine Fehlermeldung ausgeben, du kannst pro Feld eine Meldung ausgeben, du kannst die falschen Felder farbig hervorheben etc ... Ideen gibt es da viele.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 18.07.2008, 13:09   #3
TP-Junior
 
Registriert seit: Jul 2008
Walter-Wodka macht alles soweit korrekt
Danke für die schnelle Antwort.

Über den zweiten Weg habe ich auch bereits nachgedacht. Nur die Umsetzung ist mir noch nicht ganz klar. Wenn ich das Formular aufrufe, hinterlege ich in form action mein Eingabe-formular, nach dem submit wird geprüft und erst wenn alles ok ist ändere ich die form action auf das Druck-Formular.

Ich hoffe ich hab das so richtig verstanden.
Walter-Wodka ist offline   Mit Zitat antworten
Alt 18.07.2008, 13:17   #4
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Und *was* ist dir in der Umsetzung jetzt noch nicht ganz klar?

Die form action nach dem Absenden kannst du nicht ändern. Wenn du nach dem Aufruf, der Verarbeitung und Speicherung der Daten eine andere Seite aufrufen willst, dann kannst du das über header('Location: http://www.bla.de/andereseite'); machen.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 18.07.2008, 16:09   #5
TP-Junior
 
Registriert seit: Jul 2008
Walter-Wodka macht alles soweit korrekt
Arrow

Also ich komme nicht wirklich mit der Antwort weiter.
Ich brauche doch anschließend wieder die form action um die Daten auf der nächsten Seite auszugeben und in die DB zu schreiben.

Daher ist der Aufruf über
Zitat:
header('Location: http://www.bla.de/andereseite');
leider nicht sehr hilfreich.

Hab mal folgendes probiert:

Formular für Eingabe: eingabe.php

Code:
<body>
	<?php
		$print = false;
		$fehler = '';
		if (isset($_POST['submit'])) {
			if (isset($_POST['kd_ref']) && !is_array($_POST['kd_ref']) && $_POST['kd_ref'] != ''){
				// Alles ok 
			} else {
				$fehler .= "Bitte Feld füllen.<br />";
			}
			if ($fehler == ''){
				$print = true;
				echo "<form action=druck.php method=POST>";
			} else {
				$print = false;				
				echo "<b>$fehler</b>";
			}
		}
		if (!$print){
			echo "<form action=eingabe.php method=POST>";
		}
	?>
	    <table align="center" cellspacing="0" cellpadding="0">
			<label for="kd_ref">Kundenreferenz / Customer reference<br /></label>
			<input type="text" id="kd_ref" value="<?php
				if (isset($_POST['kd_ref']) && !is_array($_POST['kd_ref'])){
					echo htmlspecialchars($_POST['kd_ref']);
				}
			?>" name="kd_ref" size='60' maxlength='50' /><br /><br />
			<input type="submit" name="submit" />
			<input type="reset" /><br />
		</table>
	</form
</body>
Formular für Druck: druck.php

Code:
<body>
    <?php
    // Daten in DB schreiben
    ?>
    <table align="center" cellspacing="0" cellpadding="0">
		<td valign="top" style="border:1px solid #000; width:50%;">
			Kundenreferenz / Customer reference<br /><br />
			<?php
				echo "&nbsp;".htmlspecialchars($_POST['kd_ref'])."<br /><br />"; 
			?>
			<!--  Formular drucken -->
			<a href="javascript:void(0);" onclick="window.print();" tabindex="15"><input type="button" value="Drucken"/>			
		</td>
	</table>
</body>
Bei einer Fehleingabe funktioniert dieses wunderbar.

Problem ist jedoch folgendes Szenario:

- Eingabe-Maske wird aufgerufen
- Form action wird auf Eingabe-Maske geleitet
- Benutzer gibt korrekten Wert ein
- Eingabe-Maske wird aufgerufen
- Prüfung findet statt
- Form action wird auf Druck-Maske geleitet
- Und ich muss schon wieder auf senden klicken, da der Fokus sich immer noch auf der Eingabe-Maske befindet. Erst bei erneutem submit wird die Druck-Maske aufgerufen.

Das ist mühselig. Gibt es nicht eine Möglichkeit die Daten auf der Eingabe-Prüfung zu testen und anschließend direkt auf die Druck-Maske zu übergeben?

Ich hoffe, dass das Problem durch dieses Beispiel ein wenig klarer wird.

Und wenn ihr mir noch eine andere Möglichkeit für einen Button zum Druck ohne Javascript anbieten könntet, dann wäre ich überglücklich!!!

Vielen Dank nochmals für die Hilfe.
Walter-Wodka ist offline   Mit Zitat antworten
Alt 18.07.2008, 16:14   #6
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Dein Code ist leider noch großer Käse

Du kannst die Daten doch über die gleiche Datei in die Datenbank speichern (und nicht erst in deiner "Druck-Datei"). Ist das gemacht, leitest du mit header() auf deine Druckdatei um, liest dort aus der Datenbank, was du ausgedruckt haben willst und fertig?
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 18.07.2008, 16:42   #7
TP-Junior
 
Registriert seit: Jul 2008
Walter-Wodka macht alles soweit korrekt
Klingt eigentlich gut Boris.
Leider führt der Aufruf zu folgender Meldung:

Warning: Cannot modify header information - headers already sent by
Walter-Wodka ist offline   Mit Zitat antworten
Alt 18.07.2008, 16:46   #8
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Du darfst vor header() keinerlei Ausgabe haben, sprich: Kein HTML, kein Leerzeichen.

Dein PHP-Code gehört sowieso "ganz nach oben", sprich noch vor den Doctype. Trenn das mal ein wenig
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 18.07.2008, 16:57   #9
TP-Junior
 
Registriert seit: Jul 2008
Walter-Wodka macht alles soweit korrekt
Tatsächlich es funktioniert!!!

Vielen dank Boris und weiter so.

Damit komme ich weiter.
Walter-Wodka ist offline   Mit Zitat antworten
Alt 18.07.2008, 16:58   #10
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Cheers
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Traum-Talk > Webdesign & Co.
Ablauf Formular Ablauf Formular
« Container Verschachtelung, z-index, css, gif & swf | Anfängerfrage zum DW Tutorial Ebenenmenu (Popup) »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Import, der Ablauf? PolenInvest Recht & Co 6 15.07.2008 14:41
Steuerl. Ablauf innergemein. Erwerb wiantomi Recht & Co 5 09.04.2006 15:13
Projektmanagement - idealer Ablauf Elli Traum-Dynamik 4 05.08.2005 14:14
PopUp Menü langsamer Ablauf havelmaeuse Fireworks 8 04.05.2004 17:12
[Domain] verkaufen - Ablauf Schumanium Webdesign & Co. 11 21.01.2004 17:17


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:48 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67