Hallo
So simpel ist das mit PHP nicht, da du bei erfolgter Auswahl 1 zunächst das Formular abschicken musst , eine Auswertung machen musst und erst dann die zweite Selectbox zur Verfügung stellen kannst. Ich habe das im Bsp. unten so gelöst, dass Die Selects nacheinander abgefragt werden und eine Auswahl sofort an den Browser gesendet wird.
Auf die Schnelle also ca. so:
PHP-Code:
<?PHP
session_start();
?>
<script type="text/javascript">
function formHandler(sel)
{
var sURL = sel.options[sel.selectedIndex].value;
if (sURL != "nichts")
{
this.location.href= sURL;
}
}
</script>
<?PHP
function selbox($werte, $getparam='wahl', $name)
{
$backwert = "<select onChange=\"formHandler(this)\" title=\"teamwahl\">\n";
$backwert .= '<option value=" ">'.$name.'</option>';
for($i = 0; $i < count($werte); $i++)
{
if($werte[$i] == '') continue;
$backwert .= '<option value="'.$_SERVER['SCRIPT_NAME'].'?'.$getparam.'='.$i.'">'.$werte[$i].'</option>'."\n";
}
$backwert .= '</select>';
return $backwert;
}
/**
*
* Hier startet das eigentliche Script
*
**/
// Auswahl der Dropdownfelder
$werte = array();
$werte[] = 'team_1';
$werte[] = 'team_2';
$werte[] = 'team_3';
$werte[] = 'team_4';
$selbox1 = 'Mannschaft 1 wählen';
$selbox2 = 'Mannschaft 2 wählen';
// INIT des Scripts und Auswahl 1 und Auswahl 2 löschen
if(isset($_GET['init']))
{
unset($_SESSION['w1']);
unset($_SESSION['w2']);
}
// Noch keine Auswahl 1 vorhanden
if(!isset($_GET['wahl']) AND (!isset($_SESSION['w1'])))
{
$auswahl = selbox($werte, 'wahl', $selbox1);
echo $auswahl; // die erste Seelctbox
}
// Auswahl 1 ist getroffen, $_SESSION belegen und Auswahl 2 starten
elseif(isset($_GET['wahl']))
{
$_SESSION['w1'] = $werte[$_GET['wahl']];
$werte[$_GET['wahl']] = ''; // diese Wahl steht nicht mehr zur Verfügung
$auswahl2 = selbox($werte, 'wahl2', $selbox2);
echo $auswahl2;
}
// Auswahl 2 wurde auch getroffen, $_SESSION mit Wahl 2 belegen
if(isset($_GET['wahl2']))
{
$_SESSION['w2'] = $werte[$_GET['wahl2']];
}
// Erst wenn beide Manschaften gewählt wurden, weiter verarbeiten
if(isset($_SESSION['w1']) AND (isset($_SESSION['w2'])))
{
echo 'Wahl 1='.$_SESSION['w1']."<br>";
echo 'Wahl 2='.$_SESSION['w2'];
}
INIT des Scripts mit ?init in der URL
Oder du machst das mit AJAX, dann spart man sich das Absenden der ersten Auswahl.