X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=encode.php;fp=encode.php;h=175e1a757a4273bdda998eb4f22baefafc85abac;hb=875b7f185d9c3c4bbf896c41456e3f8ccdde905e;hp=24a150dbc4251b4c1645168651b2f6433a76e507;hpb=bdcec472dcd1e9fc6ff9df137f838f1f3124ec9c;p=wfpl.git diff --git a/encode.php b/encode.php index 24a150d..175e1a7 100644 --- a/encode.php +++ b/encode.php @@ -152,27 +152,27 @@ function enc_provinces($str) { define('PULLDOWN_ARRAY', 0); define('PULLDOWN_HASH', 1); define('PULLDOWN_2D', 2); -function pulldown_options_to_hash($options, $keys_from) { +function pulldown_options_to_2d($options, $keys_from) { # convert other types of input to value=>display hash switch($keys_from) { case PULLDOWN_HASH: - return $options; - case PULLDOWN_ARRAY: $new_options = array(); - foreach($options as $opt) { - $new_options[$opt] = $opt; + foreach($options as $value => $display) { + $new_options[] = array($value, $display); } return $new_options; - break; - case PULLDOWN_2D: + case PULLDOWN_ARRAY: $new_options = array(); foreach($options as $opt) { - $new_options[$opt[0]] = $opt[1]; + $new_options[] = array($opt, $opt); } return $new_options; break; + case PULLDOWN_2D: + return $options; + break; default: - die('unknown value: "' . print_r($keys_from) . '" passed in $keys_from parameter'); + die('pulldown_options_to_2d(): unknown value: "' . print_r($keys_from) . '" passed in $keys_from parameter'); } } @@ -196,7 +196,7 @@ function pulldown_options_to_hash($options, $keys_from) { # multiple: UNTESTED set to true for multiple-select boxes. function pulldown($name, $options, $keys_from = PULLDOWN_ARRAY, $multiple = false) { - $options = pulldown_options_to_hash($options, $keys_from); + $options = pulldown_options_to_2d($options, $keys_from); $GLOBALS[$name . '_options'] = array(); $GLOBALS[$name . '_options']['options'] = $options; $GLOBALS[$name . '_options']['multiple'] = $multiple; @@ -210,7 +210,7 @@ function enc_options($values, $name) { if($GLOBALS[$name . '_options']['multiple']) { # FIXME test this $values = explode(', ', $values); } - return encode_options($values, $GLOBALS[$name . '_options']['options'], PULLDOWN_HASH); + return encode_options($values, $GLOBALS[$name . '_options']['options'], PULLDOWN_2D); } # use this function along with a special template to generate the html for pulldowns and multiple select boxes. @@ -225,10 +225,13 @@ function encode_options($selected, $options, $keys_from) { $selected = array($selected); } - $options = pulldown_options_to_hash($options, $keys_from); + if($keys_from != PULLDOWN_2D) { + $options = pulldown_options_to_2d($options, $keys_from); + } $out = ''; - foreach($options as $value => $display) { + foreach($options as $valdisp) { + list($value, $display) = $valdisp; $out .= '