Eintragsoption PHP
czaz
- php
0 Felix Riesterer0 czaz0 czaz0 Der Martin0 czaz
0 Felix Riesterer
Hallo,
ich habe folgenden Quelltext geschrieben:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<TITLE></TITLE>
</head>
<body>
<table>
<form action="eintrag.php" method="post">
<tr><td colspan="3">Passwort</td></tr>
<tr><td colspan="3"><input type="password" name="passwort" size="20" maxlength="30"></td></tr>
<tr><td>Tag</td><td>Monat</td><td>Jahr</td><td>Uhrzeit</td></tr>
<tr><td><input name="ttag" type="text" size="5" maxlength="2"></td>
<td><input name="tmonat" type="text" size="5" maxlength="2"></td>
<td><input name="tjahr" type="text" size="5" maxlength="4"></td>
<td><input name="euhrzeit" type="text" size="5" maxlength="5"></td></tr>
<tr><td colspan="4">Einsatzdauer</td></tr>
<tr><td colspan="4">
<p>
<select name="edauer" size="1">
<option>15 Minuten</option>
<option>30 Minuten</option>
<option>45 Minuten</option>
<option>1 Stunde</option>
<option>2 Stunden</option>
<option>3 Stunden</option>
<option>4 Stunden</option>
<option>5 Stunden</option>
<option>6 Stunden</option>
<option>7 Stunden</option>
<option>8 Stunden</option>
</select>
</p>
</td></tr>
<tr><td colspan="4">Einsatzgebiet</td></tr>
<tr><td colspan="4">
<p>
<select name="egebiet" size="1" >
<option>Stuttgart - Rot</option>
<option>Stuttgart - Zuffenhausen</option>
<option>Stuttgart - Mönchfeld</option>
<option>Stuttgart - Zazenhausen</option>
<option>Stuttgart - Feuerbach</option>
<option>Stuttgart - Bad Cannstatt</option>
<option>Stadtgebiet Stuttgart</option>
</select>
</p>
</td></tr>
<tr><td colspan="4">Einsatzkräfte</td></tr>
<tr><td colspan="4">
<p>
<select name="ekraefte" size="5" multiple>
<option>LF 8/6</option>
<option>LF 16 TS</option>
<option>LF 8/18</option>
<option>SW 2000</option>
<option>MTF</option>
</select>
</p>
</td></tr>
<tr><td colspan="4">Text</td></tr>
<tr><td colspan="4"><textarea cols="50" rows="10" name="etext" maxlenth="2000"></textarea></td></tr>
<tr><td valign="top"><input type="submit" value="Eintragen" class="schalter"></td>
<td valign="top"><input type="reset" value="Felder löschen" class="schalter"></td></tr>
</form>
<?php
if ($_POST["passwort"] == "xxxx") {
if ($_POST["ttag"] <> "") {
$dbf = dbase_open("einsaetze.dbf",2);
$anzahl = dbase_numrecords($dbf);
$index = time();
$tjahr = $_POST["tjahr"];
$tmonat = $_POST["tmonat"];
$ttag = $_POST["ttag"];
$etext = $_POST["etext"];
$euhrzeit = $_POST["euhrzeit"];
$edauer = $_POST["edauer"];
$egebiet = $_POST["egebiet"];
$ekraefte = $_POST["ekraefte"];
if ($tjahr < 2000) {$tjahr = $tjahr + 2000;}
$esort = $tjahr*10000 + $tmonat*100 + $ttag;
$depp = "<b>Achtung - Falscheintrag, dieses Datum gibt es nicht!</b><br>";
if ($tmonat > 12) {$etext = $depp." ".$etext;}
if ($ttag > 31) {$etext = $depp." ".$etext;}
if ($tmonat == 4) { if ($ttag > 30) {$etext = $depp." ".$etext;} }
if ($tmonat == 6) { if ($ttag > 30) {$etext = $depp." ".$etext;} }
if ($tmonat == 9) { if ($ttag > 30) {$etext = $depp." ".$etext;} }
if ($tmonat == 11) { if ($ttag > 30) {$etext = $depp." ".$etext;} }
if ($tmonat == 2) { if ($ttag > 29) {$etext = $depp." ".$etext;} }
$sj = bcmod($tjahr,4);
if ($tmonat == 2) { if($sj <> 0) { if($ttag > 28) {$etext = $depp." ".$etext;} } }
if ($ttag == "1") {$ttag = "01";}
if ($ttag == "2") {$ttag = "02";}
if ($ttag == "3") {$ttag = "03";}
if ($ttag == "4") {$ttag = "04";}
if ($ttag == "5") {$ttag = "05";}
if ($ttag == "6") {$ttag = "06";}
if ($ttag == "7") {$ttag = "07";}
if ($ttag == "8") {$ttag = "08";}
if ($ttag == "9") {$ttag = "09";}
if ($tmonat == "1") {$tmonat = "01";}
if ($tmonat == "2") {$tmonat = "02";}
if ($tmonat == "3") {$tmonat = "03";}
if ($tmonat == "4") {$tmonat = "04";}
if ($tmonat == "5") {$tmonat = "05";}
if ($tmonat == "6") {$tmonat = "06";}
if ($tmonat == "7") {$tmonat = "07";}
if ($tmonat == "8") {$tmonat = "08";}
if ($tmonat == "9") {$tmonat = "09";}
$edatum = $ttag.".".$tmonat.".".$tjahr;
$dummy = array(
$esort,
$edatum,
$euhrzeit,
$edauer,
$egebiet,
$ekraefte,
$etext,
$index);
dbase_add_record($dbf,$dummy);
dbase_close($dbf);
echo "<tr><td colspan=\"3\">Die Daten wurden erfolgreich gesendet.</td></tr>\n";
}
}
?>
</table>
<br><br><a href="../intern/index.php">zurück</a>
</body>
</html>
so in dem abschnitt:
<tr><td colspan="4">Einsatzkräfte</td></tr>
<tr><td colspan="4">
<p>
<select name="ekraefte" size="5" multiple>
<option>LF 8/6</option>
<option>LF 16 TS</option>
<option>LF 8/18</option>
<option>SW 2000</option>
<option>MTF</option>
</select>
</p>
</td></tr>
wird aber immer nur die erste auswahl übertragen die man auswählt und nicht wie gewünscht mehrer autos !
Hat da jemand ne Idee an was das liegen könnte ?
Gruß
czaz
Liebe(r) czaz,
ich sehe manche Dinge in Deinem Code, die Du besser anders machst. Ob ich Dein zentrales Problem lösen kann, weiß ich nicht.
if ($ttag == "1") {$ttag = "01";}
if ($ttag == "2") {$ttag = "02";}
if ($ttag == "3") {$ttag = "03";}
if ($ttag == "4") {$ttag = "04";}
if ($ttag == "5") {$ttag = "05";}
if ($ttag == "6") {$ttag = "06";}
if ($ttag == "7") {$ttag = "07";}
if ($ttag == "8") {$ttag = "08";}
if ($ttag == "9") {$ttag = "09";}if ($tmonat == "1") {$tmonat = "01";}
if ($tmonat == "2") {$tmonat = "02";}
if ($tmonat == "3") {$tmonat = "03";}
if ($tmonat == "4") {$tmonat = "04";}
if ($tmonat == "5") {$tmonat = "05";}
if ($tmonat == "6") {$tmonat = "06";}
if ($tmonat == "7") {$tmonat = "07";}
if ($tmonat == "8") {$tmonat = "08";}
if ($tmonat == "9") {$tmonat = "09";}$edatum = $ttag.".".$tmonat.".".$tjahr;
Benutze sprintf(), um Dein Datum zu formatieren.
$edatum = sprintf('%02d.%02d.%04d', $ttag, $tmonat, $tjahr); // ergibt tt.mm.jjjj
<select name="ekraefte" size="5" multiple>
[...]
wird aber immer nur die erste auswahl übertragen die man auswählt und nicht wie gewünscht mehrer autos !
In PHP kann es sinnvoll sein, den Namen eines Eingabeelements mit einem eckigen Klammernpaar zu versehen, damit serverseitig aus der "Variablen" ein Array wird. Versuche einmal folgendes:
<select name="ekraefte[]" size="5" multiple="multiple">
Und lasse Dir serverseitig mittels dieser Zeile ausgeben, was da am Server angekommen ist:
echo "<pre>";print_r($_POST);echo "</pre>\r\n";
Liebe Grüße,
Felix Riesterer.
Hey Felix,
danke für deine schnelle Antwort ! Ich schreibe das gleich mal so um wie du das vorgeschlagen hast! Ich hoffe das es klappt, dass bereitet mir schon seit einer weile kopfzerbrechen ! Wäre toll wenns funzt !
Danke
czaz
Hallo Felix,
habe den Quelltext gerade geändert. In der Ausgabe steht dann an der gewünschten stelle anstatt den Fahrzeugen ein "Array" =). Was läuft da schief oder hast du eine Idee an was das sonst noch Liegen könnte ?
Gruß
Czaz
Hallo,
habe den Quelltext gerade geändert. In der Ausgabe steht dann an der gewünschten stelle anstatt den Fahrzeugen ein "Array" =).
ja was hast du denn gedacht, wie mehrere Einträge übergeben werden? Und was die [] Klammern wohl bedeuten sollten?
Jetzt kannst du auf die einzelnen selektierten Einträge als Arrayelemente zugreifen - wobei es denkbar ist, dass das Array auch mal nur einen oder sogar gar keinen Eintrag hat.
Ciao,
Martin
Hey,
<select name="ekraefte[]" size="5" multiple="multiple">
<option>LF 8/6</option>
<option>LF 16 TS</option>
<option>LF 8/18</option>
<option>SW 2000</option>
<option>MTF</option>
so sieht mein code jetzt aus, aber ich muss doch in der klammer jeweils was zuweisen oder ? Muss ich meine ausgabe dann ändern oder kann ich die lassen ?
Danke
Czaz
Liebe(r) czaz,
habe den Quelltext gerade geändert. In der Ausgabe steht dann an der gewünschten stelle anstatt den Fahrzeugen ein "Array" =). Was läuft da schief oder hast du eine Idee an was das sonst noch Liegen könnte ?
was hast Du an
Und lasse Dir serverseitig mittels dieser Zeile ausgeben, was da am Server angekommen ist:
echo "<pre>";print_r($_POST);echo "</pre>\r\n";
nicht verstanden?
Wie mit Arrays umzugehen ist, steht in der PHP-Doku. Du findest auch sicherlich Tutorials, in denen mit Arrays hantiert wird, und wo man auch dran nachvollziehen kann, wie man das macht.
Liebe Grüße,
Felix Riesterer.