Tom: select selected makierung

Beitrag lesen

Hello,

und hier noch die fast neueste Version, die ich mir eben vom Kumpel zurückgeholte habe, mit dem ich ein Buch schreiben wollte...
Irgendwas stimmt hier nicht!

<?php  ### make_selectbox.php ###

#------------------------------------------------------------------------------
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
)
{
  $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;
}

#==============================================================================

main section

#==============================================================================

$_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);

###############################################################################

HTML-Output

###############################################################################
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
  <TITLE>Selectbox</TITLE>
  <META NAME="Author" CONTENT="Thomas Schmieder, bitworks Deutschland">
  <META NAME="Keywords" CONTENT="Beispiele, HTML, PHP, Programmierung, Selectbox">
  <META NAME="Description" CONTENT="Kleine Tools für PHP-Programmierer">

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

-->
  </style>

</HEAD>

<BODY>

<h3>Selectbox multiple</h3>

<!--
<form action="http://selfhtml.bitworks.de/debug/kontrolle.php" method="POST">
-->
<form action="" method="POST">
  <?php echo $select; ?>
  <p><input type="submit" name="btn[test]" value="lass sehen"></p>
</form>
</BODY>
</HTML>

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

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