Tom: Ups, make_selectbox() fehlte...

Beitrag lesen

Hello,

Da war was verloren gegangen...

Um die Selectbox also zu erzeugen, benötigst du mindestens vier Angaben:

in meinem Beispiel kommt ein Array mit den CSS-Klassennamen dazu, das man
vorher noch füttern muss...

$_options[1] = 'Hotel';
$_options[2] = 'Gasthof';
$_options[3] = 'Pension';
$_options[4] = 'Ferienwohnung';
$_options[5] = 'Ferienzimmer';
$_options[6] = 'Schlafsaal';
$_options[7] = 'Wohnwagen';
$_options[8] = 'Zelt';

if (isset($_POST['unterkunft']) and is_array($_POST['unterkunft']))
{
  $_selection = $_POST['unterkunft'];
}
else
{
  $_selection[] = 1;
}

$_classes['select'] = 'sel_unterkunft';
$_classes['option'] = 'opt_unterkunft';

$select = make_selectbox('unterkunft','M',$_options,$_selection,$_classes);

Die Klassen müssen natürlich im CSS definiert sein:

#------------------------------------------------------------------------------
function make_selectbox
#------------------------------------------------------------------------------
(
 $name,               # Name der Selectbox ohne []
 $type,               # S für sinlge, M für Multiple
 $_options,           # assoziatives Array mit den möglichen Optionen
 $_selection=array(), # indiziertes Array mit den letzten Post-Werten (Value=" ")
 $_classes=array()    # Array mit den Klassendefinitionen, die eingebunden werden
)
{
  if (strtolower($type)=='s' and count($_selection) > 0)
  {
    reset($_selection);
    $_selection = each($_selection);
  }

$select = "\n<select name="".trim($name).'[]"'.
                      ((!empty($_classes['select']))?' class="'.$_classes['select'].'"':'').
                      ((strtolower($type)=='m')?' multiple':'').">\n";

foreach($_options as $key => $val)
  {
    $select.='  <option'.(!empty($_classes['option'])?' class="'.$_classes['option'].'"':'')."\n".
             "          value="$key"".(in_array($key,$_selection)?' selected="selected"':'').'>'.
                         htmlentities($val)."</option>\n";
  }

$select .= "</select>\n";

return $select;
}

<style type="text/css">
  <!--
  .sel_unterkunft
  {
    font-family:Century Gothic,Helvetica,Arial,sans-serif;
    font-size:12pt;
    width:200px;
    height:10em;
  }

-->
  </style>

Und dann brauchst Du $select später nur noch im HTML-Teil auszugeben, so wie du das ja jetzt auch schon machst.

Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de

Tom

Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau