Voreinstellung [Formular] aus DB rauslesen

Blabliblubs

Mitglied
Hi,

ich habe mir ein Jahresfeld durch PHP erzeugt:
PHP:
<select  type="text" name="GebJahr" id="GebJahr" value="">
          <?php 
             $thisYear = date("o");
           for($i = $thisYear; $i >= 1800; $i-- )
           {
                print '<option>'.$i.'</option> ';
				
           }
           ?>
          </select>

Dadurch kann ich in meinem Formular statt Zahlen anzugeben die Jahreszahl per Scrollen auswaehlen. Funktioniert alles soweit. Nun moechte ich aber, wenn ich das Formular lade auch die Voreinstellung mit hochladen. Das Grundprinzip habe ich verstanden nur weiß ich nicht wie ich es an diesem Beispiel lösen kann. Das klappt bei mir nicht:
PHP:
<select  type="text" name="GebJahr" id="GebJahr" value="">
          <?php 
             $thisYear = date("o");
           for($i = $thisYear; $i >= 1800; $i-- )
           {
                print '<option>'.$i.'</option> ';
		     if ($zeile->GebJahr == $i){echo 'selected="selected"';}		
           }
           ?>
          </select>

Wie könnte ich das machen? :confused:

Gruß


PS: Für Leute, die nicht wissen wie es für die anderen HTML Tags funktioniert...hier nochmal kurze Beispiele
1) SELECT:
PHP:
          <select name="Geschlecht" id="Geschlecht">
            <option value="" >---Bitte auswaehlen---</option>
            <option value="m"<?php if ($zeile->Geschlecht == 'm'){echo 'selected="selected"';}?>>Maennlich</option>
            <option value="w"<?php if ($zeile->Geschlecht == 'w'){echo 'selected="selected"';}?>>Weiblich</option>
          </select></td>
2) TEXTAREA:
PHP:
<textarea name="Diagnose02" cols="20" rows="1" id="Diagnose02"><?php echo $zeile->Diagnose02?></textarea>
3) TEXT:
PHP:
<input name="Diagnosenanzahl" type="text" id="Diagnosenanzahl" size="3" maxlength="3" value="<?php echo $zeile->Diagnosenanzahl?>" />
4) RADIO:
PHP:
<input type="radio" name="DiagnoseAkt01" id="DiagnoseAkt01" value="AktuellJa"<?php if ($zeile->DiagnoseAkt01 == 'AktuellJa'){echo 'checked="checked"';}?> />

Das Hochladen mache ich damit:
PHP:
try {
   
    $IDSuche= htmlspecialchars($_POST['IDSuche']);
    $db = new MySQLi('localhost', 'root', '', 'datenbankname');
    $sql = "SELECT * FROM tabellenname WHERE StudieID='$IDSuche' ";
    $ergebnis = $db->query($sql); 
    $zeile = $ergebnis->fetch_object();
	//var_dump($zeile);
   }catch (Exception $e) {
    echo 'Fehler: ' . htmlspecialchars($e->getMessage());
  }
:)
 
Zuletzt bearbeitet:
Öhm. Du hast dir die Antwort doch schon selber gegeben...

<select name="Geschlecht" id="Geschlecht">
<option value="" >---Bitte auswaehlen---</option>
<option value="m"<?php if ($zeile->Geschlecht == 'm'){echo 'selected="selected"';}?>>Maennlich</option>
<option value="w"<?php if ($zeile->Geschlecht == 'w'){echo 'selected="selected"';}?>>Weiblich</option>
</select></td>

-->

PHP:
<select  type="text" name="GebJahr" id="GebJahr" value="">
          <?php 
             $thisYear = date("o");
           for($i = $thisYear; $i >= 1800; $i-- )
           {
                print '<option';
if ($zeile->GebJahr == $i){echo ' selected="selected"';}        
print '>'.$i.'</option> ';
             
           }
           ?>
          </select>

Oder hab ich was Grundlegendes falsch verstanden :confused:
 
Danke, jetz klappt es. Der Trottel bin ich...kannst du mir nochmal erklären warum du erst

PHP:
print '<option';
und da dazwischen dann
PHP:
if ($zeile->GebJahr == $i){echo ' selected="selected"';}
und zum schluss dann
PHP:
print '>'.$i.'</option> ';
schreibst?

Ich hatte das Grundprinzip hoffentlich schon verstanden (scheint eher wohl nicht). Überlege nur grade warum so und nicht anders....hmm
 
Zuletzt bearbeitet:
Du meinst print, echo, print?
Weil du es so hattest :p
Prinzipiell ist es egal, echo kann aber mehrere Parameter annehmen:

PHP:
echo "Hallo"."ich"."bin".$user;
--> Ein mit Punkt verketteter String

PHP:
echo "Hallo","ich","bin",$user;
--> Mehrere Parameter (ähnlich einer Funktion, Argumente mit Komma getrennt)
 
Ich meinte eigentlich warum du das schließende Tag ">" erst nach der if-abfrage drinn stehen hast? verstehe ich irgendwie nicht...die if-abfrage is ja somit nicht zwischen <option>if-abfrage & blabla</option> sondern....<option; if-abfrage>blalba</option>. Verstehst was ich mein? :eek:
 
Das ist ganz einfach so:
Ein Selecteter Option-Tag sieht so aus: <option selected="selected">

Also muss vor der > des Option-Tags das selected stehen. Somit muss auch die If-Abfrage zwischen < und > stehen.
 

Neue Beiträge

Zurück