Zur Navigation

Suchformular mit Weiterverarbeitung [4]

31 Jörg Kruse

Wie sieht denn der Gesamt-Code aus?

01.06.2011 23:23

32 tobi

<html>
<head>
<meta http-equiv="Content-Style-Type" content="text/css" />

<style type="text/css">
/* Angaben im Formluar bei Fehlermeldungen */
rot{
color: #FF0000;
}

/* Angaben im Formluar bei erfolgreicher Anmeldung */
gruen{
color: #009900;
}

/* Angaben im Formluar bei vollen Teilnehmerfeldern */
blau{
color: #0000FF;
}
</style>
</head>
<body>

<?php
include "database.php.inc";

echo "<h1>Schritt 4 - Anmeldung fortsetzen</h1>\n";
echo "<p>4. und letzter Schritt um die Anmeldung erfolgreich abzuschließen.</p>";
echo "<p>Hier sind nun sämtliche hinterlegte Daten aufgelistet (Stand 15.05.2011).< p/>";
echo "D-Klasse: 0000-1350 TTR Punkte<br />";
echo "C-Klasse: 1351-1450 TTR-Punkte<br />";
echo "B-Klasse: 1451-1600 TTR-Punkte<br />";
echo "A-Klasse: 1601-9999 TTR-Punkte</p>";

				
if (isset($_POST['spieler_id'])) 
	{
	
		if (empty($_POST['email'])) {
		echo '<p>Bitte E-Mail-Adresse angeben!</p>';
		}	

		if (empty($_POST['verein'])) {
		echo '<p>Bitte Verein angeben!</p>';
		}

		if (empty($_POST['bezirk'])) {
			echo '<p>Bitte Bezirk angeben!</p>';
		}

		if (empty($_POST['altersklasse'])) {
		echo '<p>Bitte Altersklasse angeben!</p>';
		}

		if (empty($_POST['spielklasse'])) {
		echo '<p>Bitte Spielklasse angeben!</p>';
		}

		if (empty($_POST['spielposition'])) {
		echo '<p>Bitte Position angeben!</p>';
		}
	
		$spieler_id = mysql_escape_string($_POST['spieler_id']);
		$today = date("l; d.m.Y H:i:s");
		$eintrag="";
		
		$mysql_query = "
		    SELECT *
		    FROM
		            ttr_rangliste
		    WHERE
		            ID = " . $spieler_id . ";
		    ";
		//echo $mysql_query . "<p>";
		$result = mysql_query($mysql_query);
		$num_rows = mysql_num_rows($result);
		//echo $num_rows ."<p>";
		if ( $num_rows == 1) // Spieler gefunden
			{
			$row = mysql_fetch_assoc($result);
			$ttr = $row['ttr'];
			if(!isset($_POST['email']) OR empty($_POST['email']))

			{
			//führt das aus, wenn die mail adresse noch ned angegeben wurde
			echo "Vorname: ". $row['vorname']."<br />";
			echo "Nachname: ". $row['nachname']."<br />";
			echo "Geschlecht: ". $row['geschlecht']."<br />";
			echo "Geburtsjahr: ". $row['geburtsjahr']."<br />";
			echo "Quartals-TTR: ". $ttr."<br />";
			echo "Anzahl Einzel: ". $row['anzahlEinzel']."<br />";
	//		echo "Bezirk: ". $row['bezirk']."<br />";
	//		echo "Verein: ". $row['verein']."<br />";
	//		echo "Altersklasse: ". $row['altersklasse']."<br />";
	//		echo "Spielklasse: ". $row['spielklasse']."<br/ >";
	//		echo "Spielerposition: ". $row['spielposition']."<br />";
		
			if (($row['altersklasse']=='Damen') || ($row['altersklasse']=='Herren')) 
				{
					//TTR Punkte unter 1351 (also 0-1350)
					if ($ttr<1351) {
						echo "Empfohlene Spielklasse: D-Klasse<br />";
						echo "Turniertag: Samstag 10. September 2011<br />";
						}
					//TTR Punkte unter 1451 (also 1351-1450)
					elseif ($ttr<1451) {
						echo "Empfohlene Spielklasse: C-Klasse<br />";
						echo "Turniertag: Sonntag 11. September 2011<br />";
						}
					//TTR Punkte unter 1601 (also 1451-1600)
					elseif ($ttr<1601) {
						echo "Empfohlene Spielklasse: B-Klasse<br />";
						echo "Turniertag: Sonntag 11. September 2011<br />";
						}
					//TTR Punkte über 1601(also 1601-....)
					else {
						echo "Empfohlene Spielklasse: A-Klasse<br /p>";
						echo "Turniertag: Sonntag 11. September 2011<br />";
						}
				}
				elseif ($row['altersklasse']=='') 
				{
						echo "Empfohlene Spielklasse: keine<p>";
				}
				else // Jugend
				{
						echo "Empfohlene Spielklasse: Jugend<br />";
						echo "Turniertag: Samstag 10. September 2011<br />";
				}
				
				//Formular für Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.	
				echo "<form method=\"post\" action=\"anmeldung_komfort.php\">";
				echo "<table>";
				echo "<tr>\n";
				
				echo "<input type=\"hidden\" name=\"spieler_id\" value=\"" . $_POST['spieler_id'] . "\">";
				echo "<br />";
				echo "<tr>\n";
				echo "<td align=\"left\">Turnierklasse:</td>\n<td align=\"left\">";
				echo "<select name=\"turnierklasse\">\n";
				echo "<option value=\"1\"";if($row['altersklasse']!='' && $row['altersklasse'] != "Herren" && $row['altersklasse'] != "Damen"){echo " selected=selected";} echo ">Jugend - Turniertag 1 - Samstag 10. September 2011</option>";
				echo "<option value=\"2\"";if(($row['altersklasse'] == "Herren" || $row['altersklasse'] == "Damen") && $ttr<1351){echo " selected=selected";} echo ">D-Klasse - Turniertag 1 - Samstag 11. September 2011</option>";
				echo "<option value=\"3\"";if(($row['altersklasse'] == "Herren" || $row['altersklasse'] == "Damen") && $ttr>1350 && $ttr<=1451){echo " selected=selected";} echo ">C-Klasse - Turniertag 2 - Sonntag 11. September 2011</option>";
				echo "<option value=\"4\"";if(($row['altersklasse'] == "Herren" || $row['altersklasse'] == "Damen") && $ttr>1451 && $ttr<=1601){echo " selected=selected";} echo ">B-Klasse - Turniertag 2 - Sonntag 11. September 2011</option>";
				echo "<option value=\"5\"";if(($row['altersklasse'] == "Herren" || $row['altersklasse'] == "Damen") && $ttr>1601){echo " selected=selected";} echo ">A-Klasse - Turniertag 2 - Sonntag 11. September 2011</option>";
				echo "</select>\n";
				echo "</td>";
				echo "</tr>\n";	
				echo "<tr>\n";	
				echo "<td align=\"left\">eMail:</td>\n<td align=\"left\"><input name=\"email\" type=\"text\" id=\"email\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"".$emailx[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Verein:</td>\n<td align=\"left\"><input name=\"verein\" type=\"text\" id=\"verein\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['verein']."".$verein[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Bezirk:</td>\n<td align=\"left\"><input name=\"bezirk\" type=\"text\" id=\"bezirk\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['bezirk']."".$bezirk[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Altersklasse:</td>\n<td align=\"left\"><input name=\"altersklasse\" type=\"text\" id=\"altersklasse\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['altersklasse']."".$altersklasse[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Spielklasse:</td>\n<td align=\"left\"><input name=\"spielklasse\" type=\"text\" id=\"spielklasse\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['spielklasse']."".$spielklasse[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Spielerposition:</td>\n<td align=\"left\"><input name=\"spielposition\" type=\"text\" id=\"spielposition\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['spielposition']."".$spielpostion[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\" valign=\"top\">Anmerkung:</td>\n<td align=\"left\"><textarea name=\"eintrag\" cols=\"70\" rows=\"7\" id=\"eintrag\" class=\"eingabe\">".$eintrag."</textarea></td>\n";
				echo "</tr>\n";
				echo "</table>";
				echo "<p><input type=\"submit\" value=\"Anmeldung abschließen\" /></form></p>";
			}
			else
			{
				if (($row['altersklasse']=='Damen') || ($row['altersklasse']=='Herren')) 
				{
					//TTR Punkte unter 1351 (also 0-1350)
					if ($ttr<1351) {
						$empfohleneKlasse = 'D-Klasse';
						}
					//TTR Punkte unter 1451 (also 1351-1450)
					elseif ($ttr<1451) {
						$empfohleneKlasse = 'C-Klasse';
						}
					//TTR Punkte unter 1601 (also 1451-1600)
					elseif ($ttr<1601) {
						$empfohleneKlasse = 'B-Klasse';
						}
					//TTR Punkte über 1601(also 1601-....)
					else {
						$empfohleneKlasse = 'A-Klasse';
						}
				}
				elseif ($row['altersklasse']=='') 
				{
						$empfohleneKlasse = '';
				}
				else // Jugend
				{
						$empfohleneKlasse = 'Jugend';
				}
				//wenn die mail adresse vorhanden ist wird das ausgeführt :)
				$mysql_query = 'INSERT INTO `anmeldungen`
				(`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `anzahlEinzel`, `empfohleneKlasse`, `email`, `verein`, `bezirk`, `altersklasse`, `spielklasse`, `spielposition`, `gemeldeteKlasse`, `anmerkung`, `timestamp`)
				VALUES
				("' . $row['vorname'] . '", "' . $row['nachname'] . '", "' . $row['geschlecht'] . '", "' . $row['geburtsjahr'] . '", "' . $ttr . '", "' . $row['anzahlEinzel'] . '", "' . $empfohleneKlasse . '","' . $_POST['email'] . '", "' . $_POST['verein'] . '", "' . $_POST['bezirk'] . '",  "' . $_POST['altersklasse'] . '", "' . $_POST['spielklasse'] . '", "' . $_POST['spielposition'] . '",  "' . $_POST['turnierklasse'] . '","' . $_POST['eintrag'] . '", NOW())';
				$result = mysql_query($mysql_query);
			
				if($result)
				{
					//Bestätigungsemail an den Anmeldenden
					
					$to = $_POST['email'];
					$subject = 'Bestätigung der Anmeldung zum PPC 2011';
                    $text = '
							<p>Hallo '. $row['vorname'] .' '. $row['nachname'] .',</p>
			
					$from = 'From: Test<test@1234.de>' . "\n";
					$from .= 'Reply-To: Test<test@1234.de>' . "\n";
					$from .= 'Content-Type: text/html' . "\n";
					if(mail($to, $subject, $text, $from))
					
					//Mail an die Turnierleitung
					$to = 'test1111.de';
					$subject = 'Neue Anmeldung zum PPC 2011';
                    $text = '
							<p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>

					$from = 'From: "'. $row['vorname'] .' '. $row['nachname'] .'"  <'. $_POST['email'] .'> ' . "\n";
					$from .= 'Content-Type: text/html' . "\n";
					if(mail($to, $subject, $text, $from))
					
					
					{
						echo '<p><gruen><b>Die Anmeldung zum PPC 2011 ist bei uns eingegangen!<br />In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung.</b></gruen><br /><br /><a class=\"links\" href=index.php title=\"PPC-Allgemein\">Zurück zur Übersicht</a> oder <a class=\"links\" href=http:/test.de title=\"test Homepage\">zur Webseite des test</a></p';
					}
					else
					{
						echo 'Anmeldung erfolgreich. Probleme mit Mailversand.';
					}
				}
				else
				{
					die(mysql_error());
				}
			}
		}
		
		else //keine Übereinstimmung
		{
		//Evtl noch Zurück-Link auf erstes Formular einfügen...
		echo "Keine Übereinstimmung oder mehrere... Sehr seltsamer Fehler...";
		echo "<p>Es konnte keine Übereinstimmung gefunden werden. Bitte versuche es erneut --> <a href=\"index.php\">Zurück zur Übersicht</a></p>";
		}
	}
 	else
	{
	//Wenn Direktaufruf der Datei, dann Hinweis und Link zu Schritt 1
	echo "<p>Bitte Übersichgtsseite lesen und dann die Anmeldung tätigen --> <a href=\"index.php\">Zurück zur Übersicht</a></p>";
	}
?>

</body>
</html>

02.06.2011 00:57

33 Jörg Kruse

Der gepostete Code kommt wegen Fehlermeldungen gar nicht zur Ausführung, da in zwei Zeilen am Ende noch ein Hochkomma und ein Semikolon fehlen:

$text = '
                            <p>Hallo '. $row['vorname'] .' '. $row['nachname'] .',</p>

$text = '
                            <p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>

Anscheinend ist das Formular auf mehrere Dateien verteilt. Da ist es zum Verständnis schon wichtig zu wissen, welche Namen diese und die sonstigen Dateien haben. Wenn es sich bei anmeldung_komfort.php um eine andere Datei handelt, musst du natürlich dort die Fehlermeldungen einbauen.

Falls es sich bei dieser Datei um anmeldung_komfort.php handelt:
$_POST['spieler_id'] wird dann wohl schon von einem Formular aus einer anderen Datei übermittelt? dann benötigst du eine andere Bedingung, um zu wissen, ob das Formular auf sich selbst abgesendet wurde.

Im einfachsten Fall kannst du ja überprüfen, ob der jeweilige Parameter selbst übermittelt wurde, aber leer ist

if (isset($_POST['email']) && empty($_POST['email'])) {
    echo '<p>Bitte E-Mail-Adresse angeben!</p>';
}

02.06.2011 09:49

34 tobi

Zitat von Jörg
Der gepostete Code kommt wegen Fehlermeldungen gar nicht zur Ausführung, da in zwei Zeilen am Ende noch ein Hochkomma und ein Semikolon fehlen:

$text = '
                            <p>Hallo '. $row['vorname'] .' '. $row['nachname'] .',</p>

$text = '
                            <p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>
Die Fehlermeldungen erscheinen nicht, ich habe den Bereich für den Inhalte des Mailversandes zuständig ist, einfach gekürzt, ohne weiter darauf zu achten, ob ich ein Zeichen zuviel gelöscht habe oder nicht.

Zitat von Jörg

Anscheinend ist das Formular auf mehrere Dateien verteilt. Da ist es zum Verständnis schon wichtig zu wissen, welche Namen diese und die sonstigen Dateien haben. Wenn es sich bei anmeldung_komfort.php um eine andere Datei handelt, musst du natürlich dort die Fehlermeldungen einbauen.

Falls es sich bei dieser Datei um anmeldung_komfort.php handelt:
$_POST['spieler_id'] wird dann wohl schon von einem Formular aus einer anderen Datei übermittelt? dann benötigst du eine andere Bedingung, um zu wissen, ob das Formular auf sich selbst abgesendet wurde.

Im einfachsten Fall kannst du ja überprüfen, ob der jeweilige Parameter selbst übermittelt wurde, aber leer ist

if (isset($_POST['email']) && empty($_POST['email'])) {
    echo '<p>Bitte E-Mail-Adresse angeben!</p>';
}

ich habe erst eine Datei für die Spielersuche (spieler-suche.html):
<html><head></head><body><h1>Schritt 1 - Spieler/innen-Suche</h1><p>Die beiden Felder <b>Vorname</b> und <b>Nachname</b> bitte vollständig und wahrheitsgemäß ausfüllen.<br />Namen in denen ä, ö, ü, ß vorkommen, müssen auch so eingetragen werden.<br />Danach bitte auf "Spieler/innen-Suche beginnen" klicken.</p><form method="post" action="spieler-liste.php"><p>Vorname: <input name="vorname" type="text" /></p><p>Nachname: <input name="nachname" type="text" /></p><input type="submit" value="Spieler/innen-Suche beginnen" /></form></body></html>

dann eine spieler-liste.php:
<html>
<head>
</head>
<body>

<?php

include "database.php.inc";
if (isset($_POST['vorname']) && isset($_POST['nachname'])) 
	{
	$vorname = mysql_escape_string($_POST['vorname']);
	$nachname = mysql_escape_string($_POST['nachname']);
	$mysql_query = "
        SELECT *
        FROM
                ttr_rangliste
        WHERE
                vorname = '" . $vorname . "'
            AND nachname = '" . $nachname . "';
        ";
	$result = mysql_query($mysql_query);
	$num_rows = mysql_num_rows($result);

	if ( $num_rows > 0) // Spieler gefunden
		{
		if ($num_rows > 1) //mehrfach vorhanden
			{
			echo "<h1>Schritt 2 - Ergebnis der Spieler/innen-Suche</h1>";
			echo "<p>Informationen zu gesuchtem Spieler/Spielerin:</p>";
			//hab ich mal hinzugefügt ums auszugeben, wass es hier aber nicht tut, unten tuts aber, fehlt wohl das: $row = mysql_fetch_assoc($result); aber wenn ich das einfüge, dann gibt er zwar vornamen und nachnamen aus, aber es wird ein verein weniger aufgelistet
			echo "<p><b>".$vorname." ".$nachname."</b></p> ";
			echo "<p>wurden gefunden.</p>";
			echo "<p>Zu der/die genannte Spieler/Spieler gibt es mehrere Einträge in der Datenbank. Aus diesem Grund ist ein weiterer Schritt, Schritt 3, nötig.<p>";
			echo "<h1>Schritt 3 - Spezifische Spieler/innen-Suche</h1>";			
			echo "Um zu gewährleisten, dass der/die korrekte Spieler/in ausgewählt wird, ist eine weitere Angabe nötig: <b>der Vereinsname</b>. Bitte suche den richtigen Verein aus und klicke dann hinter dem Vereinsnamen auf: \"gefundene Spielerdaten weiter verarbeiten\".<p>";
			echo "<table>";
			while ($row = mysql_fetch_assoc($result)) {
				echo "<tr>";
				echo "<td>".$row['verein']."</td>\n<td><form method=\"post\" action=\"anmeldung_komfort.php\">\n<input type=\"hidden\" name=\"spieler_id\" value=\"".$row['ID']."\" />\n<input type=\"submit\" value=\"gefundene Spielerdaten weiter verarbeiten\" /></form></td>";
				echo "</tr>";
				}
			echo "</table>";
			}
			else // nur einmal vorhanden
			{
			$row = mysql_fetch_assoc($result);
			echo "<h1>Schritt 2 - Ergebnis der Spieler/innen-Suche</h1>";
			echo "<p>Informationen zu gesuchtem Spieler/Spielerin:</p>";
			echo "<p><b>".$row['vorname']." ".$row['nachname']."</b></p> ";
			echo "<p>wurden gefunden.</p>";
			echo "<p>Um zum nächsten Schritt (Schritt 4) zu gelangen, bitte auf \"gefundene Spielerdaten weiter verarbeiten\" klicken.</p>";			
			echo "<form method=\"post\" action=\"anmeldung_komfort.php\">\n<input type=\"hidden\" name=\"spieler_id\" value=\"".$row['ID']."\" />\n<input type=\"submit\" value=\"gefundene Spielerdaten weiter verarbeiten\" /></form></p>";
			echo "<p>PS: bitte nicht wundern, nach Schritt 2 kommt im Normalfall Schritt 3. Dieser entfällt in diesem Fall aber, da der Spieler/die Spielerin komplett in Schritt 2 gefunden werden konnte.</p>";
			}
		}
		else //keine Übereinstimmung
		{
		//keine Übereinstimmung - Augabe mit Hinweis und Link zum Formular Schritt 1
		echo "<p>Es konnte keine Übereinstimmung gefunden werden. Bitte versuche es erneut --> <a href=\"spieler-suche.html\">Zurück zum Formular</a></p>";
		echo "<p><p>Wurde bei einem erneuten Versuch ebenfalls keine Übereinstimmung gefunden, dann ist der Spieler/die Spielerin nicht in der Datenbank gelistet. Eine Anmeldung ist dann ausschließlich via E-Mail möglich: <a href=\"mailto:123@123.de\">123@123.de</a></p>";
		}
	}
	else
	{
	//Wenn Direktaufruf der Datei, dann Hinweis und Link zu Schritt 1
	echo "<p>Bitte fülle das in Schritt 1 aufgezeigte Formular vollständig aus --> <a href=\"spieler-suche.html\">Zurück zum Formular</a></p>";
	}
?>

</body>
</html>

waren spielsuche und spielerliste erfolgreich, dann gelangt man zu den anmeldung_komfort.php, um welche es die ganze zeit geht.

02.06.2011 12:25 | geändert: 02.06.2011 12:26

35 Jörg Kruse

Und die in meinem letzten Beitrag genannte Lösung hast du ausprobiert?

02.06.2011 22:11

36 tobi

Zitat von Jörg

if (isset($_POST['email']) && empty($_POST['email'])) {
    echo '<p>Bitte E-Mail-Adresse angeben!</p>';
}

ja, allerdings taucht dann Parse error: syntax error, unexpected T_ELSE in on line 167 auf

02.06.2011 22:15

37 Jörg Kruse

Dann wirst du wohl den Syntaxfehler in oder vor Zeile 167 beheben müssen.

02.06.2011 22:45

38 tobi

162 }
163 else
164 {
165 if (($row['altersklasse']=='Damen') || ($row['altersklasse']=='Herren'))
166 {
167 //TTR Punkte unter 1351 (also 0-1350)
168 if ($ttr<1351) {
169 $empfohleneKlasse = 'D-Klasse';
170 }

02.06.2011 22:47

39 tobi

ich hab nun anstatt
if (isset($_POST['email']) && empty($_POST['email'])) {
    echo '<p>Bitte E-Mail-Adresse angeben!</p>';
}
nur so gemacht:
if (isset($_POST['email']) && empty($_POST['email'])) {
    echo '<p>Bitte E-Mail-Adresse angeben!</p>';
und die } Klammer an einer anderen Position gesetzt. Nun wird die Meldung eingeblendet.
Die Meldung wird nun direkt aufgezeigt, da dass Feld E-Mail ja leer ist.

Versuche ich nun beispielsweise den Inhalt von dem Feld Spielklasse zu entfernen, dann kommt nur das "Bitte E-Mail Adresse angeben" und das Feld Spielklasse wird autoamtisch wieder mit dem Inhalt befüllt. Wenn ich den Inhalt bei Spielklasse umändere (und E-Mail leer lasse), dann wird nach Absenden wieder der Usprungsinhalt bei Spielklasse ausgegeben. Ich nehme an, es liegt daran, dass die Werte allesamt aus der DB kommen. Wie kann ich dies ändern?

03.06.2011 01:31

40 Jörg Kruse

Zitat von tobi
ich hab nun anstatt
if (isset($_POST['email']) && empty($_POST['email'])) {
    echo '<p>Bitte E-Mail-Adresse angeben!</p>';
}
nur so gemacht:
if (isset($_POST['email']) && empty($_POST['email'])) {
    echo '<p>Bitte E-Mail-Adresse angeben!</p>';
und die } Klammer an einer anderen Position gesetzt. Nun wird die Meldung eingeblendet.

Ich würde mich nicht wundern, wenn jetzt etwas anders dafür nicht richtig funktioniert. Wo hast du den Code denn eingefügt?

Versuche ich nun beispielsweise den Inhalt von dem Feld Spielklasse zu entfernen, dann kommt nur das "Bitte E-Mail Adresse angeben"


Ja, du musst den Code für dieses Feld anpassen und zusätzlich einfügen. Der obige Dreizeiler sorgt ja nur für die Fehlermeldung bei fehlender Emailadresse

und das Feld Spielklasse wird autoamtisch wieder mit dem Inhalt befüllt. Wenn ich den Inhalt bei Spielklasse umändere (und E-Mail leer lasse), dann wird nach Absenden wieder der Usprungsinhalt bei Spielklasse ausgegeben. Ich nehme an, es liegt daran, dass die Werte allesamt aus der DB kommen. Wie kann ich dies ändern?

Du definierst den Wert abhängig davon, ob dieser per $_POST übertragen wurde:

if (isset($_POST['spielklasse'])) {
    $spielklasse = $_POST['spielklasse'];
} else {
    $spielklasse = $row['spielklasse']; // Datenbankwert
}

... oder kürzer:

$spielklasse = (isset($_POST['spielklasse'])) ? $_POST['spielklasse'] : $row['spielklasse'];

$spielklasse kannst du dann für die Vorbelegung verwenden

03.06.2011 15:44