Dropdown Feld selektieren

hume1991

Erfahrenes Mitglied
Hallo zusammen,

ich suche schon seit mehreren Tagen eine Lösung bzgl. Dropdown Feld. Es handelt sich hierbei um ein Formular mit Pflichtfelder, wenn es fehlerhaft abgesendet wurde, dann sollten die alten Daten übernommen werden wie z.B. bei Textfeld:

im value Bereich

PHP:
value="<?php echo  $_POST['Leistung']; ?>

bedauerlich ist es mir noch nicht gelungen es im Dropdown Feld umzusetzen, ich poste hier mal meinen Code. Sollte jemand eine einfachere Idee haben bitte ich euch dass Beispiel zu posten.

HTML:
<tr>
<td> <label>Geb&auml;ude Typ:*</label> </td>
<td> <select class="Felder"  name="Typ" size="5">
        <option value="1"> <?echo $selected_1;?> Wohnhaus</option>
        <option value="2"> <?echo $selected_2;?>Gewerbe (B&auml;cker,Metzger, etc.)</option>
        <option value="3"> <?echo $selected_3;?>Geb&auml;ude m. hohem W&auml;rmebedarf (Hotel,Altenheim,Schwimmbad)</option>
        <option value="4"> <?echo $selected_4;?>Sonstiges</option>
      </select>  </td>  </tr>

PHP:
if(isset($_POST['Typ'])){
    if($_POST['Typ'] == '1'){
        $selected_1 = 'selected="1"';
        }
        }
    else{
        $selected_1 = '';
    }
    if($_POST['Typ'] == '2'){
        $selected_2 = 'selected="2"';
    }else{
        $selected_2 = '';
    }

    if($_POST['Typ'] == '3'){
        $selected_3 = 'selected="3"';
    }else{
        $selected_3 = '';
    }

    if($_POST['Typ'] == '4'){
        $selected_4 = 'selected="4"';
    }else{
        $selected_4 = '';
    }

Mit freundlichen Grüßen

Christian
 
Ich würde das ganze radikal vereinfachen
PHP:
//$_POST auswerten
$selected = if(isset($_POST['Typ']) ? $_POST['Typ'] : '';

//Die Auswahlmöglichkeiten definieren
$items[1] = ' Wohnhaus';
$items[2] = 'Gewerbe (B&auml;cker,Metzger, etc.)'
//TODO die weiteren Items defineiren

//Dei Select-Box erstellen
echo  '<select class="Felder"  name="Typ" size="5">';
foreach($items as $index => $item){
	//Prüfen ob es sich um den ausgewählten handelt. Wenn ja, den Text 'selected' setzen
	$selectedText = ($index == $selected) ? 'selected' : '';
	echo "<option value='{$index}' {$selectedText}>{$item}</option>\n";
}
echo '</select>';

Und hier noch dier Link wie ein vorselektionierter Eintrag aussieht
http://de.selfhtml.org/html/formulare/auswahl.htm#listen_vorselektiert
 
Vielen Dank für die Antwort, sieht besser aus, bekomme aber einen Parse error: syntax error, unexpected 'if' (T_IF) in C:\xampp\htdocs\index.php on line 260. So wie es aussieht müsste der Code stimmen, sehe keinen Fehler.
 
Nein der Code stimmt nicht. Im ternären Operator wird kein IF verwendet, das einfach rauslöschen dann geht's. Das kann sich (weil es ja letztendlich eine IF-Abfrage ist) aber schnell mal reinmogeln.
 
Verstehe gar nichts mehr

PHP:
//$_POST auswerten
$selected = if(isset($_POST['Typ']  $_POST['Typ'] : '';

//Die Auswahlmöglichkeiten definieren
$items[1] = ' Wohnhaus';
$items[2] = 'Gewerbe (B&auml;cker,Metzger, etc.)'
//TODO die weiteren Items defineiren

//Dei Select-Box erstellen
echo  '<select class="Felder"  name="Typ" size="5">';
foreach($items as $index => $item){
    //Prüfen ob es sich um den ausgewählten handelt. Wenn ja, den Text 'selected' setzen
    $selectedText = ($index == $selected) ? 'selected' : '';
    echo "<option value='{$index}' {$selectedText}>{$item}</option>\n";
}
echo '</select>';

 ?>
 
Mit IF (falsch):
PHP:
//$_POST auswerten 
$selected = if(isset($_POST['Typ']))?  $_POST['Typ'] : ''; 

//Die Auswahlmöglichkeiten definieren 
$items[1] = ' Wohnhaus'; 
$items[2] = 'Gewerbe (B&auml;cker,Metzger, etc.)' 
//TODO die weiteren Items defineiren 

//Dei Select-Box erstellen 
echo  '<select class="Felder"  name="Typ" size="5">'; 
foreach($items as $index => $item){ 
    //Prüfen ob es sich um den ausgewählten handelt. Wenn ja, den Text 'selected' setzen 
    $selectedText = ($index == $selected) ? 'selected' : ''; 
    echo "<option value='{$index}' {$selectedText}>{$item}</option>\n"; 
} 
echo '</select>'; 

 ?>

Ohne IF (richtig):
PHP:
//$_POST auswerten 
$selected = isset($_POST['Typ'])?  $_POST['Typ'] : ''; 

//Die Auswahlmöglichkeiten definieren 
$items[1] = ' Wohnhaus'; 
$items[2] = 'Gewerbe (B&auml;cker,Metzger, etc.)' 
//TODO die weiteren Items defineiren 

//Dei Select-Box erstellen 
echo  '<select class="Felder"  name="Typ" size="5">'; 
foreach($items as $index => $item){ 
    //Prüfen ob es sich um den ausgewählten handelt. Wenn ja, den Text 'selected' setzen 
    $selectedText = ($index == $selected) ? 'selected' : ''; 
    echo "<option value='{$index}' {$selectedText}>{$item}</option>\n"; 
} 
echo '</select>'; 

 ?>

...
 
Parse error: syntax error, unexpected 'echo' (T_ECHO) in C:\xampp\htdocs\index.php on line 268

Mit freundlichen Grüßen

Christian
 
Es fehlt ein Semikolon...
PHP:
//$_POST auswerten 
$selected = isset($_POST['Typ'])?  $_POST['Typ'] : ''; 

//Die Auswahlmöglichkeiten definieren 
$items[1] = ' Wohnhaus'; 
$items[2] = 'Gewerbe (B&auml;cker,Metzger, etc.)';
//TODO die weiteren Items defineiren 

//Dei Select-Box erstellen 
echo  '<select class="Felder"  name="Typ" size="5">'; 
foreach($items as $index => $item){ 
    //Prüfen ob es sich um den ausgewählten handelt. Wenn ja, den Text 'selected' setzen 
    $selectedText = ($index == $selected) ? 'selected' : ''; 
    echo "<option value='{$index}' {$selectedText}>{$item}</option>\n"; 
} 
echo '</select>'; 

 ?>
 

Neue Beiträge

Zurück