Einzelnen Beitrag anzeigen
  #2  
Alt 21.11.2014, 13:39:05
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: dropdownmenü Auswahl deaktivieren

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&auml;hlen';
$selbox2 'Mannschaft 2 w&auml;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.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten