|
Formulare und Steuerelemente
von Wolfgang
Arnberger
Formularen sind das tägliche Brot, wenn man mit
PHP programmieren möchte und gleichzeitig eine
Quelle der Frustration für viele Anfänger.
Deswegen möchte ich anhand eines Beispiels zeigen,
wie man mit den Elementen eines Formulars arbeiten kann
und wie man ein Formular zur Datenerfassung und zum
Editieren verwenden kann.
Für das folgende Beispiel wurde dieses
Formular angelegt:

Im oberen Teil sind die verschiedenen Eingabeelemente,
deren Inhalt mit dem Button "Abschicken" gespeichert
werden kann. Darunter wird für jeden gespeicherten
Datensatz ein Link angezeigt, mit dem man den Datensatz
wieder aufrufen und seinen Inhalt im Formular anzeigen
bzw. ändern kann.
Dieses Beispiel verwendet eine MySQL-Tabelle mit folgender
Struktur:
CREATE TABLE formular ( ID mediumint(8) unsigned NOT NULL auto_increment, text1 varchar(40), text2 text, checkbox1 tinyint(1) unsigned DEFAULT '0' NOT NULL, checkbox2 tinyint(1) unsigned DEFAULT '0' NOT NULL, radio tinyint(1) unsigned DEFAULT '0' NOT NULL, liste varchar(10), datum timestamp(14), upload varchar(100), PRIMARY KEY (ID) );
Hier beginnt unser Formular.
<FORM METHOD="post" ACTION="formular.php" enctype="multipart/form-data">
Die Angabe
enctype="multipart/form-data"
wird für den Dateiupload benötigt. Es kann leicht vorkommen,
daß man auf diese Angabe vergißt und dann viel Zeit
mit der Fehlersuche verschwendet. Falls also Ihr Dateiupload
nicht funktioniert, kontrollieren Sie zuerst diese Angabe.
Wenn das Skript noch immer nicht funktioniert, kontrollieren
Sie die Schreibrechte für den Zielordner.
Einzeiliges Textfeld
Das erste Element ist ein einzeiliges Eingabefeld.
In diesem Fall zeigt es 40 Zeichen an und kann auch
nur 40 Zeichen aufnehmen.
Damit man das Feld zur Ein- und Ausgabe verwenden kann,
muß man ihm mitteilen, was angezeigt werden soll.
Dies geschieht mit
VALUE="<?=$text1?>"
.
Beim ersten Aufruf hat $text1 keinen Wert und
das Feld ist leer. Wurde aber ein existierender Datensatz
gewählt, wird hier der Text angezeigt.
<INPUT TYPE="text" NAME="text1" SIZE="40" MAXLENGTH="40" VALUE="<?=$text1?>">
Ich habe es mir zur Gewohnheit gemacht, die Ausgabe von Daten immer in der oben dargestellten Form zu machen.
Die Alternative wäre folgende Form:
<? echo "<INPUT TYPE=\"text\" NAME=\"text1\" SIZE=\"40\" MAXLENGTH=\"40\" VALUE=\"$text1\">"; ?>
Die erste Darstellung hat zwei wesentliche Vorteile.
Erstens ist es wesentlich weniger Schreibarbeit, weil
man die Anführungszeichen nicht mit \ maskieren
muß. Zweitens kann der HTML-Code in der oben dargestellten
Form weiterhin mit Programmen wie z.B. Dreamweaver bearbeitet
und geändert werden.
Mehrzeiliges Textfeld
Das mehrzeilige Textfeld wird anders angesprochen,
als einzeilige Textfelder. Hier gibt es kein "VALUE
...". Der anzuzeigende Text wird unmittelbar vor
</TEXTAREA> angegeben.
<TEXTAREA NAME="text2" WRAP="STANDARD" COLS="40" ROWS="5"><?=$text2?></TEXTAREA>
Kontrollkästchen
Eine häufige Quelle der Verwirrung sind Kontrollkästchen.
Dort steht bei VALUE, welcher Wert mit der Variablen
übergeben werden soll, wenn das Kontrollkästchen
aktiviert ist. In diesem Fall habe ich 1 angegeben.
Wird das Kontrollkästchen nicht angeklickt, wird
NULL übergeben.
<? if($checkbox1==1) { $chk="CHECKED"; } else { $chk=""; } ?> <INPUT type="checkbox" name="checkbox1" value="1" <?=$chk ?>>
Natürlich soll das Kontrollkästchen auch
den Zustand anzeigen, der in einem Datensatz gespeichert
ist. Oben habe ich eine Möglichkeit dargestellt,
wie man mit PHP das Kontrollkästchen ein- bzw.
ausschalten kann. Hat $checkbox1 den Wert 1, bedeutet
das, daß es angeklickt war, als der Datensatz
gespeichert wurde. In diesem Fall muß in die INPUT
Zeile das Wort CHECKED eingefügt werden. Dies geschieht
durch die Variable $chk, die entweder das Wort "CHECKED"
oder "" enthält.
Diese Variante ist aber ziemlich umständlich und
erfordert zu viel Schreibarbeit. (Gute Programmierer
sind faul)
Deshalb zeige ich bei checkbox2 eine andere Variante,
die ich auch im Rest des Programms benützen werde.
<INPUT TYPE="checkbox" NAME="checkbox2" VALUE="1" <?=($checkbox2==1) ? "CHECKED" : "" ?>>
Der Ausdruck
<?=($checkbox2==1) ?"CHECKED":""?>
sieht auf den ersten Blick ein bißchen
verwirrend aus, wenn man nicht damit vertraut ist. Die
Sache ist aber ganz einfach. Es handelt sich dabei bloß
um eine andere Schreibweise für einen if() Block.
Zuerst wird der Ausdruck innerhalb der Klammer ausgewertet.
Ergibt er den Wert TRUE, wird die Option nach dem Fragezeichen
gewählt, andernfalls wird der Wert nach dem Doppelpunkt
angezeigt.
Wenn also $checkbox2 den Wert 1 hat, wird "CHECKED"
ausgegeben und das Kontrollkästchen wird aktiviert.
Radiobutton
Wieder anders sind Radiobuttons zu behandeln. Sie bieten
die Möglichkeit, daß man sie zu Gruppen zusammenfassen
kann. Aus dieser Gruppe kann dann immer nur eine Option
gewählt werden.
Dazu wird bei NAME immer die selbe Bezeichnung eingetragen.
Wichtig ist, daß sich die einzelnen Buttons im
VALUE unterscheiden. Je nachdem, welcher Button vom
Benützer angeklickt wurde, wird der entsprechende
Wert an den Server zurückgeschickt.
Auch bei Radiobuttons wird durch CHECKED angegeben, welcher Button aktiviert wurde.
<INPUT TYPE="radio" NAME="radio" VALUE="1" <?=($radio==1 || !$radio) ? "CHECKED" : ""?>> <INPUT type="radio" name="radio" value="2" <?=($radio==2) ? "CHECKED" : ""?>> <INPUT type="radio" name="radio" value="3" <?=($radio==3) ? "CHECKED" : ""?>>
Mit der Bedingung
<?=($radio==1 || !$radio) ? "CHECKED" : ""?>
wird der 1. Radiobutton aktiviert, wenn der Wert 1 ist oder nicht gesetzt ist.
Auswahlliste
Nun noch die Auswahlliste. Beim ersten Durchgang ist
noch keine Option ausgewählt. Wurde aber ein Datensatz
aus der Tabelle gelesen, dann enthält er einen
Wert aus der Liste und der entsprechende Eintrag wird
selektiert.
<SELECT NAME="liste" SIZE="1"> <OPTION VALUE="" <?=(!$liste) ? "SELECTED":""?>>------------</OPTION> <OPTION VALUE="Mo" <?=($liste=="Mo") ? "SELECTED":""?>>Montag</OPTION> <OPTION value="Di" <?=($liste=="Di") ? "SELECTED":""?>>Dienstag</OPTION> <OPTION value="Mi" <?=($liste=="Mi") ? "SELECTED":""?>>Mittwoch</OPTION> <OPTION value="Do" <?=($liste=="Do") ? "SELECTED":""?>>Donnerstag</OPTION> <OPTION value="Fr" <?=($liste=="Fr") ? "SELECTED":""?>>Freitag</OPTION> <OPTION value="Sa" <?=($liste=="Sa") ? "SELECTED":""?>>Samstag</OPTION> <OPTION value="So" <?=($liste=="So") ? "SELECTED":""?>>Sonntag</OPTION> </SELECT>
Timestamp
Gehört zwar nicht unbedingt dazu, ist aber auch
ein Problem, mit dem sich Anfänger manchmal tagelang
herumquälen. Manchmal möchte man anzeigen,
wann ein Datensatz zuletzt bearbeitet wurde. Dafür
bietet sich der Datentyp TIMESTAMP in der MySQL Tabelle
an. Um den Wert braucht man sich nicht zu kümmern.
Er wird automatisch beim Speichern eingesetzt. Will
man das Datum und die Uhrzeit dann im Formular anzeigen,
muß der Timestamp in seine Bestandteile zerlegt
und richtig wieder zusammengesetzt werden. Dafür
verwende ich diese Funktion:
<? function datum($_dat){ // Wandelt timestamp String in Datum und Uhrzeit um. $datum=intval(substr($_dat,6,2)).".".intval(substr($_dat,4,2)).".". substr($_dat,0,4)." um ".substr($_dat,8,2).":".substr($_dat,10,2).":". substr($_dat,12,2); return $datum; } ?>
Nun wird nur mehr abgefragt, ob $datum einen Wert hat
und ggf. das Datum im Format. dd.mm.yyyy hh:mm:ss angezeigt.
<TD WIDTH="336" VALIGN="TOP"><?=($datum) ? datum($datum) : "" ?>
Datei Upload
<input type="file" name="datei" size="30">
Das Inputfeld mit dem type "file" erzeugt ein Eingabefeld
mit einem Button. Damit ist es möglich, auf der eigenen
Festplatte nach einer Datei zu suchen. Diese Datei wird
dann auf den Internetserver hochgeladen und kurzfristig
in ein temporäres Directory gespeichert. Von dort wird
es in das gewünschte Directory
kopiert.
Bevor das Skript gestartet wird, sollte man feststellen, wie in der php.ini die Einstellung für "register_globals" lautet. Steht sie auf off, muß man folgenden Block einfügen, da die Werte aus dem Formular bei dieser Einstellung nicht automatisch in entsprechende Variable geschrieben werden, sondern im Array $_POST liegen. Das selbe gilt für Werte, die mit einem Link übertragen werden. Diese liegen dann im Array $_GET.
<? if($_POST) { $text1=$_POST["text1"]; $text2=$_POST["text2"]; $checkbox1=$_POST["checkbox1"]; $checkbox2=$_POST["checkbox2"]; $radio=$_POST["radio"]; $liste=$_POST["liste"]; $ID=$_POST["ID"]; $speichern=$_POST["speichern"]; } elseif($_GET) { $ID=$_GET["ID"]; } ?>
Falls register_globals=on gesetzt ist, kann man sich den oben dargestellten Block ersparen.
Damit Dateien upgeloadet werden können, muß ein
Ordner angelegt werden, in dem die Dateien abgelegt
werden können. In diesem Beispiel wurde der Ordner "upload"
genannt. Am lokalen Rechner sollte das Script dann sofort
funktionieren. Sobald Sie ein Programm mit Dateiupload
im Internet installieren, müssen Sie aber für den Zielordner
die Schreibrechte ermöglichen. Andernfalls könnte das
Skript die hochgeladene Datei nicht auf die Platte schreiben.
(Schreibrechte können Sie mit Ihrem FTP Programm einstellen.)
Bevor wir das Formular an den Server zurückschicken,
müssen wird noch den Wert für ID in einer
Variablen ablegen. Dieser Wert enthält die Datensatznummer,
falls ein bestehender Datensatz editiert wurde. Andernfalls
bleibt $ID leer. Dadurch kann man unterscheiden, ob
die Daten mit UPDATE aktualisiert werden müssen
oder eine neuer Datensatz mit INSERT angelegt werden
soll.
<INPUT TYPE="hidden" NAME="ID" VALUE="<?=$ID ?>"> <INPUT type="submit" name="speichern" value="Abschicken">
Unterhalb des Formulars werden nun noch Links angelegt,
mit denen man bestehende Datensätze aufrufen bzw.
einen neuen Datensatz anlegen kann. Diese Links könnten
auch in einer anderen Datei stehen.
<a href="formular.php">Neuer Datensatz</a>
Um einen neuen Datensatz anzulegen, wird einfach das
Formular ohne Angabe einer Datensatznummer aufgerufen.
Dadurch bleiben alle Eingabefelder leer.
Bestehende Datensätze werden abgefragt und die
ID in die Links als Parameter eingefügt.
<? $result=mysql_query("select ID, upload from formular"); while($row=mysql_fetch_array($result)) { $ID=$row["ID"]; $upload=$row["upload"]; echo "<a href="formular.php?ID=$ID">Datensatz $ID</a><BR>"; }
Wenn nun der Button "Abschicken" oder ein
Link angeklickt wird, sendet der Browser das Formular
mit den Daten zurück an den Server. Dort müssen
die Daten noch gespeichert werden. Deshalb müssen
wir am Dateianfang noch folgenden Code eingeben.
Ich verwende in meinen Programmen immer eine eigene
PHP Datei, mit der ich die Verbindung zur Datenbank
herstelle. Das hat den Vorteil, daß ich die Zugangsdaten
nur an einer Stelle ändern muß, wenn eine
Website installiert wird und außerdem kann ich
in jeder Datei die Verbindung ganz einfach herstellen,
indem ich bloß die folgende Zeile eingebe:
<? include("datenbank.php"); ?>
Die Datei "datenbank.php" sieht so aus:
<? // IP oder Host, Username, Passwort $db=@mysql_connect("localhost","",""); if(!$db) { die("Keine Verbindung zum SQL Server<BR>"); } $select=@mysql_select_db("test",$db); if(!$select) { die("Datenbank konnte nicht geoeffnet werden<BR>"); } ?>
Zuerst wird geprüft, ob das Formular abgeschickt
wurde. Die Variable $speichern kommt von der Zeile
<INPUT TYPE="submit" NAME="speichern" VALUE="Abschicken">
und enthält den Wert "Abschicken", falls
der Button angeklickt wurde. Andernfalls wäre die
Variable $speichern am Seitenanfang unbekannt und die Auswertung
des Ausdrucks ergäbe FALSE.
Für einige Felder wird geprüft, ob eine Eingabe vorhanden ist.
<? if(!$text1) { $fnr++; $fehler[$fnr]="Geben Sie im einzeiligen Textfeld etwas ein."; }
if(!$text2) { $fnr++; $fehler[$fnr]="Geben Sie im mehrzeiligen Textfeld etwas ein."; }
if(!$liste) { $fnr++; $fehler[$fnr]="Wählen Sie einen Eintrag aus der Liste."; } ?>
Sind die Felder leer, wird eine Fehlermeldung erzeugt, die über den folgenden Code am Seitenangang ausgegeben wird:
<? if($fnr) {?> <TABLE WIDTH="100%" CELLSPACING="0"> <TR> <TD> <? for($x=1;$x <= $fnr; $x++) { echo "<font color=\"#FF0000\">".$fehler[$x]."<BR></font>"; } ?> </TD> </TR> </TABLE> <? } ?>
Wurde der Button angeklickt, dann ist die Bedingung
erfüllt und es kann ermittelt werden, ob eine ID
vorhanden ist. Fehlt die ID, handelt es sich um einen
neuen Datensatz, der mit INSERT eingefügt wird.
Andernfalls wird UPDATE ausgeführt.
Dann wird sowohl bei update, als auch bei insert überprüft,
ob ein Dateiname für den Upload angegeben wurde. Falls
ein Name angegeben wurde, wird der Upload durchgeführt
und der Dateiname in der Datenbank gespeichert.
Es ist empfehlenswert, jedem Dateinamen die Datensatznummer
voranzustellen. Andernfalls würden sich gleiche Dateinamen
überschreiben.
Beim Update kann der Dateiname sofort in die Datenbank
geschrieben werden, da die ID des Datensatzes bekannt
ist. Beim Insert muß zuerst der Datensatz angelegt werden,
dann wird mit
mysql_insert_id()
die ID ermittelt und anschließend kann mit update der
Dateiname gespeichert werden.
Damit die gerade gespeicherten Werte nicht mehr im
Formular angezeigt werden, müssen sie mit unset() zerstört
werden.
<? if($speichern) { if(!$text1) { $fnr++; $fehler[$fnr]="Geben Sie im einzeiligen Textfeld etwas ein."; }
if(!$text2) { $fnr++; $fehler[$fnr]="Geben Sie im mehrzeiligen Textfeld etwas ein."; }
if(!$liste) { $fnr++; $fehler[$fnr]="Wählen Sie einen Eintrag aus der Liste."; }
if(!$fnr) { if($ID) { // Update if($_FILES['datei']['name']) { $zieldatei=$ID."_".$_FILES['datei']['name']; if (move_uploaded_file($_FILES['datei']['tmp_name'], "upload/$zieldatei")) { mysql_query("update formular set text1='$text1', text2='$text2', checkbox1='$checkbox1', checkbox2='$checkbox2', radio='$radio', liste='$liste', upload='$zieldatei' where ID=$ID"); } else { $fnr++; $fehler[$fnr]="Fehler beim Upload."; } } else { mysql_query("update formular set text1='$text1', text2='$text2', checkbox1='$checkbox1', checkbox2='$checkbox2', radio='$radio', liste='$liste' where ID=$ID"); } } else { // Insert mysql_query("insert into formular (text1, text2, checkbox1, checkbox2, radio, liste) values ('$text1', '$text2', '$checkbox1', '$checkbox2', '$radio', '$liste')"); $ID=mysql_insert_id();
if($_FILES['datei']['name']) { $zieldatei=$ID."_".$_FILES['datei']['name']; if (move_uploaded_file($_FILES['datei']['tmp_name'], "upload/$zieldatei")) { mysql_query("update formular set upload='$zieldatei' where ID=$ID"); } else { $fnr++; $fehler[$fnr]="Fehler beim Upload."; } } } unset($ID); unset($text1); unset($text2); unset($checkbox1); unset($checkbox2); unset($radio); unset($liste); } } ?>
Wenn ein Link angeklickt wurde, hat $ID weiterhin einen
Wert. Dieser Datensatz wird aus der Datenbank abgefragt
und sein Inhalt im Formular angezeigt.
<? if($ID) { $result=mysql_query("select * from formular where ID=$ID"); while($row=mysql_fetch_array($result)) { $ID=$row["ID"]; $text1=$row["text1"]; $text2=$row["text2"]; $checkbox1=$row["checkbox1"]; $checkbox2=$row["checkbox2"]; $radio=$row["radio"]; $liste=$row["liste"]; $datum=$row["datum"]; } } ?>
Hier nun das gesamte Listing in der richtigen Reihenfolge:
<? include("datenbank.php");
if($_POST) { $text1=$_POST["text1"]; $text2=$_POST["text2"]; $checkbox1=$_POST["checkbox1"]; $checkbox2=$_POST["checkbox2"]; $radio=$_POST["radio"]; $liste=$_POST["liste"]; $ID=$_POST["ID"]; $speichern=$_POST["speichern"]; } elseif($_GET) { $ID=$_GET["ID"]; }
function datum($_dat) { // Wandelt timestamp in Datum und Uhrzeit um. $datum=intval(substr($_dat,6,2)).".".intval(substr($_dat,4,2)).".".substr($_dat,0,4)." um ".substr($_dat,8,2).":".substr($_dat,10,2).":".substr($_dat,12,2); return $datum; }
if($speichern) { if(!$text1) { $fnr++; $fehler[$fnr]="Geben Sie im einzeiligen Textfeld etwas ein."; }
if(!$text2) { $fnr++; $fehler[$fnr]="Geben Sie im mehrzeiligen Textfeld etwas ein."; }
if(!$liste) { $fnr++; $fehler[$fnr]="Wählen Sie einen Eintrag aus der Liste."; }
if(!$fnr) { if($ID) { // Update if($_FILES['datei']['name']) { $zieldatei=$ID."_".$_FILES['datei']['name']; if (move_uploaded_file($_FILES['datei']['tmp_name'], "upload/$zieldatei")) { mysql_query("update formular set text1='$text1', text2='$text2', checkbox1='$checkbox1', checkbox2='$checkbox2', radio='$radio', liste='$liste', upload='$zieldatei' where ID=$ID"); } else { $fnr++; $fehler[$fnr]="Fehler beim Upload."; } } else { mysql_query("update formular set text1='$text1', text2='$text2', checkbox1='$checkbox1', checkbox2='$checkbox2', radio='$radio', liste='$liste' where ID=$ID"); } } else { // Insert mysql_query("insert into formular (text1, text2, checkbox1, checkbox2, radio, liste) values ('$text1', '$text2', '$checkbox1', '$checkbox2', '$radio', '$liste')"); $ID=mysql_insert_id();
if($_FILES['datei']['name']) { $zieldatei=$ID."_".$_FILES['datei']['name']; if (move_uploaded_file($_FILES['datei']['tmp_name'], "upload/$zieldatei")) { mysql_query("update formular set upload='$zieldatei' where ID=$ID"); } else { $fnr++; $fehler[$fnr]="Fehler beim Upload."; } } } unset($ID); unset($text1); unset($text2); unset($checkbox1); unset($checkbox2); unset($radio); unset($liste); } }
if($ID) { $result=mysql_query("select * from formular where ID=$ID"); while($row=mysql_fetch_array($result)) { $ID=$row["ID"]; $text1=$row["text1"]; $text2=$row["text2"]; $checkbox1=$row["checkbox1"]; $checkbox2=$row["checkbox2"]; $radio=$row["radio"]; $liste=$row["liste"]; $datum=$row["datum"]; } } ?> <H1>Formular zum Erfassen und Editieren</H1> <H2>mit Dateiupload</H2> <? if($fnr) { ?> <TABLE WIDTH="100%" CELLSPACING="0"> <TR> <TD> <? for($x=1;$x <= $fnr; $x++) { echo "<font color=\"#FF0000\">".$fehler[$x]."<BR></font>"; } ?> </TD> </TR> </TABLE> <? } ?> <FORM METHOD="post" ACTION="<?=$PHP_SELF?>" enctype="multipart/form-data"> <TABLE WIDTH="500" BORDER="0" CELLSPACING="0" CELLPADDING="0"> <TR> <TD WIDTH="164" VALIGN="TOP">Textfeld (einzeilig)</TD> <TD WIDTH="336" VALIGN="TOP"> <INPUT TYPE="text" NAME="text1" SIZE="40" MAXLENGTH="40" VALUE="<?=$text1?>"> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">Textfeld (mehrzeilig)</TD> <TD WIDTH="336" VALIGN="TOP"> <TEXTAREA NAME="text2" WRAP="STANDARD" COLS="40" ROWS="5"><?=$text2?></TEXTAREA> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">Kontrollkästchen 1</TD> <TD WIDTH="336" VALIGN="TOP"> <? if($checkbox1==1) { $chk="CHECKED"; } else { $chk=""; } ?> <INPUT TYPE="checkbox" NAME="checkbox1" VALUE="1" <?=$chk?>> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">Kontrollkästchen 2</TD> <TD WIDTH="336" VALIGN="TOP"> <INPUT TYPE="checkbox" NAME="checkbox2" VALUE="1" <?=($checkbox2==1) ? "CHECKED" : ""?>> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">Radiobutton 1</TD> <TD WIDTH="336" VALIGN="TOP"> <INPUT TYPE="radio" NAME="radio" VALUE="1" <?=($radio==1 || !$radio) ? "CHECKED" : ""?>> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">Radiobutton 2</TD> <TD WIDTH="336" VALIGN="TOP"> <INPUT TYPE="radio" NAME="radio" VALUE="2" <?=($radio==2) ? "CHECKED" : ""?>> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">Radiobutton 3</TD> <TD WIDTH="336" VALIGN="TOP"> <INPUT TYPE="radio" NAME="radio" VALUE="3" <?=($radio==3) ? "CHECKED" : ""?>> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">Liste</TD> <TD WIDTH="336" VALIGN="TOP"> <SELECT NAME="liste" SIZE="1"> <OPTION VALUE="" <?=(!$liste) ? "SELECTED":""?>>-------------------</OPTION> <OPTION VALUE="Mo" <?=($liste=="Mo") ? "SELECTED":""?>>Montag</OPTION> <OPTION VALUE="Di" <?=($liste=="Di") ? "SELECTED":""?>>Dienstag</OPTION> <OPTION VALUE="Mi" <?=($liste=="Mi") ? "SELECTED":""?>>Mittwoch</OPTION> <OPTION VALUE="Do" <?=($liste=="Do") ? "SELECTED":""?>>Donnerstag</OPTION> <OPTION VALUE="Fr" <?=($liste=="Fr") ? "SELECTED":""?>>Freitag</OPTION> <OPTION VALUE="Sa" <?=($liste=="Sa") ? "SELECTED":""?>>Samstag</OPTION> <OPTION VALUE="So" <?=($liste=="So") ? "SELECTED":""?>>Sonntag</OPTION> </SELECT> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">Upload</TD> <TD WIDTH="336" VALIGN="TOP"> <input type="file" name="datei" size="30"> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP">zuletzt bearbeitet am</TD> <TD WIDTH="336" VALIGN="TOP"> <?=($datum) ? datum($datum):"";?> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP"> </TD> <TD WIDTH="336" VALIGN="TOP"> <INPUT TYPE="hidden" NAME="ID" VALUE="<?=$ID?>"> <INPUT TYPE="submit" NAME="speichern" VALUE="Abschicken"> </TD> </TR> <TR> <TD WIDTH="164" VALIGN="TOP"> </TD> <TD WIDTH="336" VALIGN="TOP"><br> <br> <a href="<?="formular.php"?>">Neuer Datensatz</a> </TD> </TR> <? $result=mysql_query("select ID,upload from formular"); while($row=mysql_fetch_array($result)) { $ID=$row["ID"]; $upload=$row["upload"]; ?> <TR> <TD WIDTH="164" VALIGN="TOP"> </TD> <TD WIDTH="336" VALIGN="TOP"> <a href="<?="$PHP_SELF?ID=$ID"?>">Datensatz <?=$ID?></a> <? if($upload) { ?> Download <a href="<?="upload/$upload"?>"><?=$upload?></a> <? } ?> </TD> </TR> <? } ?> </TABLE> </FORM>
|