dynamisch gewähltes Dropdown

hallo1234

Grünschnabel
Hallo zusammen,
ich hoffe ihr könnt mir helfen.
Ich habe ein Formular

PHP:
<select class="select" size="1" name="fahrzeug">
    <option value="1">Bitte ausw&auml;hlen</option>
    <option value="2">Limousine</option>
    <option value="3">Kleinwagen</option>
    <option value="4">Kombi</option>
    <option value="5">Gel&auml;ndewagen/Pickup</option>
    <option value="6">Cabrio/Roadster</option>
    <option value="7">Sportwagen/Coup&eacute;</option>
    </select>

Bei Klick auf Weiter öffnet sich die neue Seite und das ein 2. Formular öffnet sich.
Dort soll nun in dem Dropdown der eingegebene Wert aus Formular 1 enthalten sein.
Leider bekomme ich es nicht hin.
Kann mir jemand einen Tipp geben.

PHP:
if($_POST['1'])
   {
       echo "<option selected='selected'>Bitte ausw&auml;hlen</option>" 
   }
   elseif($_POST['2'])
   {
       echo "<option selected='selected'>Limousine</option>" 
   }
   elseif($_POST['3'])
   {
      echo "<option selected='selected'>Kleinwagen</option>" 
   }
   elseif($_POST['4'])
   {
      echo "<option selected='selected'>Kombi</option>"
   }
   elseif($_POST['5'])
   {
      echo "<option selected='selected'>Gel&auml;ndewagen/Pickup</option>"
   }
   elseif($_POST['6'])
   {
      echo "<option selected='selected'>Cabrio/Roadster</option>" 
   }
   elseif($_POST['7'])
   {
      echo "<option selected='selected'>Sportwagen/Coup&eacute;</option>" 
   }
?>
<select class="select" size="1" name="fahrzeug">
    <option value="1">Bitte ausw&auml;hlen</option>
    <option value="2">Limousine</option>
    <option value="3">Kleinwagen</option>
    <option value="4">Kombi</option>
    <option value="5">Gel&auml;ndewagen/Pickup</option>
    <option value="6">Cabrio/Roadster</option>
    <option value="7">Sportwagen/Coup&eacute;</option>
    </select>

********************

Übrigens das kommt als Fehler:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in

Ich danke Euch
 
Zuletzt bearbeitet:
sehr kompliziert und völlig falsch.

item: $_POST['1'] Greifft nicht auf die Fahrzeugauswahl(1) zu, sondern auf en Feld mit dem Namen 1. Mit $_POST['fahrzeug'] bekommst du die Nummer, die du bei value eingetragen hast.

item: Du setzt ein option-Tag ausserhalb des Select-Tags ab. Dort nützt er gar nix.

Am besten alle Einträge in einen Array setzen. Als index dein value verwenden. Dann über den Array iterieren und die Options ausgeben. Dabei den Index mit dem $_POST abgleichen und dann ggf. den Text selected="selected" setzen.

PHP:
<?php
//Einträge definieren
$items[1] = 'Bitte ausw&auml;hlen';
$items[2] = 'Limousine';
$items[3] = 'Kleinwagen';
//TODO: Restliche Eintrage analog ergänzen

//Forumularübergabe auslesen
$selectedIndex = $_POST['fahrzeug'];

//Ausgabe beginnen
echo '<select class="select" size="1" name="fahrzeug">';
//Aus jedem Ientrag eine Ausgabe machen
foreach($items as $index => $item){
	//Prüfen ob es sich um den selektionierten Eintrag handelt. Wenn ja, 'selected' setzen
	$selected = ($selectedIndex == $index) ? 'selected="selected"' : '';
	//Eintrag ausgeben
	echo "<option value='{$index}' {$selected} >{$item}</option>\n";	
}
echo '</select>';

PS: Die komische Schreibweise im String mit {$item} etc.:
Die Complex (Curly) Syntax
 
Zuletzt bearbeitet:
sehr kompliziert und völlig falsch.

item: $_POST['1'] Greifft nicht auf die Fahrzeugauswahl(1) zu, sondern auf en Feld mit dem Namen 1. Mit $_POST['fahrzeug'] bekommst du die Nummer, die du bei value eingetragen hast.

MMhh ja totaler Denkfehler von mir.
Ist ja klar, muss dann so lauten:

PHP:
<select class="select" size="1" name="fahrzeug">
    <option value="Bitte ausw&auml;hlen">Bitte ausw&auml;hlen</option>
    <option value="Limousine">Limousine</option>
    <option value="Kleinwagen">Kleinwagen</option>
    <option value="Kombi">Kombi</option>
    <option value="Gel&auml;ndewagen/Pickup">Gel&auml;ndewagen/Pickup</option>
    <option value="Cabrio/Roadster">Cabrio/Roadster</option>
    <option value="Sportwagen/Coup&eacute;">Sportwagen/Coup&eacute;</option>
    </select>

Und nun muß ich diese noch zu nem Array zusammen fassen

PHP:
$index = array ("Bitte ausw&auml;hlen","Limousine","Kleinwagen","Kombi","Gel&auml;ndewagen/Pickup","Cabrio/Roadster","Sportwagen/Coup&eacute;");

Aber klappt nicht wirklich
 
Was geht nicht richtig? Fehlermeldungen? Wie verhält es sich? Was machst du mit $index?
 
Zuletzt bearbeitet:
Fehlermeldungen kommen keine.
Na es funktioniert nicht die Dropdown Werte in ein Array zu packen.
Die nächste Seite kommt, alles super, nur ist nichts selektiert was ich in der 1. Seite ausgwählt hab
 
Ich hab jetzt ein Dropdown aus einem Array erstellt.

PHP:
$myArray1 = array("Bitte ausw&auml;hlen","Limousine","Kleinwagen","Kombi","Gel&auml;ndewagen/Pickup","Cabrio/Roadster","Sportwagen/Coup&eacute;");

echo'<select name="Fahrzeug">';

foreach($myArray1 as $fahrzeug){
    echo'<option value="'.$fahrzeug.'">'.$fahrzeug.'</option>';
}

echo'<select name="Fahrzeug">';


echo'</select>';

lieg ich damit richtig****?
Also die Anzeige ist korrekt
 
Zuletzt bearbeitet:
item: Warum 2 mal 'echo'<select name="Fahrzeug">';' ?

item: Die Auswahl wertest du nicht aus.

item: Den ganzen Text als value ist ungeeignet. nimm den Array-Index. Also so wie ich es in meinem Beispiel habe. Auch wenn du beim Array erstellen keinen eindeutigen Index mitgibst, ist in deinem Fall der Index eindeutig.
 
Ja du hast recht mein Datei ist nicht wirklich vorteilhaft.
Gut ich benutz jetzt mal deinen Code in meiner 1. Seite.
Und jetzt krieg ich den Code für die 2. Seite nicht hin.
Momentan seh ich den Wald vor lauter Bäumen nicht........
 
Ich hab gedacht das ich mit diesem Code in der 2 Seite die Werte bekomme

PHP:
 <select class="select" size="1" name="fahrzeug">
<option value="1"><?php
    echo (!isset($fahrzeug) ? " selected" : "");
  ?></option>
<option value="2"><?php
    echo (!isset($fahrzeug) ? " selected" : "");
  ?></option>
<option value="3g"><?php
    echo (!isset($fahrzeug) ? " selected" : "");
  ?></option>

</select>
 
Zuletzt bearbeitet:
Schau mal nach was isset() genau macht. Es ist ein netter Befehl, aber fehl am Platz
Wie du vergleichen kannst, steht immer noch in meinem Beispiel. Frag wenn du etwas dort nicht verstehst.
 
Zurück