/**
* Dynamically generates a select box from a $key => $value array.
*
* the array can be generated on the fly or stored.
* the key is the OPTION value and the $value is the name shown in the box.
* if there is only a key, then that is used as the value too.
* very useful for boolean type listboxes too.
* also useful to save DB queries for supporting tables.
*
* Tooltips do NOT work in IE6. sorry. blame Microsoft for not following W3
standards...
*
* @access public
* @return mixed integer # of elements in select box or string of
actual select box if $echo == true.
* @param integer $size usually 1, but the select box can be any
height.
* @param string $name the NAME='$name' parameter of a SELECT tag.
* @param array $listArray The actual key => value formatted array.
* @param boolean $blank add the extra 'empty' \n"; }
elseif ($blank && is_string($blank)) { $out .= "\n
value=\"\" title=\"" . $blank . "\" ".((selected_if_in_array($MatchToThis,
'') || '' === $MatchToThis) ? 'selected' : '').">".$blank."\n"; }
foreach($listArray as $key => $val)
{
// Check for selectbox sub-headings.
if( is_array($val) )
{
$out .= ( $indent ?
"\t
stripslashes( $key ) . "\">\n" :
"\t
CLASS=\"selectbox-ghosted\" disabled=\"disabled\">--- " . trim(
preg_replace( '/^-*(.*?)-*$/', '\\1', stripslashes( $key ) ) ) . "
---\n");
foreach( $val as $subkey => $subval )
{
$out .= "\t\t
$subkey . "\" title=\"" . stripslashes( $subval ? $subval : $subkey ) .
"\"";
if
(selected_if_in_array($MatchToThis, $subkey) || $subkey == $MatchToThis)
$out .= ' selected="selected"';
if ($size > 1) $out .= '
onmouseover="this.title = this.text;"';
$out .= '>';
$out .= stripslashes( $subval ?
$subval : $subkey );
$out .= "\n";
}
$out .= (($indent) ? "\t\n" :
'');
}
elseif( 0 == strncmp( $val, "---", 3 ) )
{
$out .= "
class='selectbox-ghosted'>".stripslashes($val)."\n";
}
else
{
$out .= "\t
title=\"" . stripslashes( (($val)?$val:$key) ) . "\"";
if (selected_if_in_array($MatchToThis, $key)
|| $key == $MatchToThis) $out .= " selected";
//if ($size > 1) $out .= "
title=\"".stripslashes($val)."\"";
if ($size > 1) $out .= '
onmouseover="this.title = this.text;"';
$out .= '>';
$out .= stripslashes( $val ? $val : $key );
$out .= "\n";
}
} //foreach
} //if count(listArray)
/**
* @return mixed 'selected' or false
* @param array $haystack the array that contains the selected items
* @param string $needle the item in the $haystack we're looking for.
* @author Daevid Vincent [daevid@]
*/
function selected_if_in_array(&$haystack, $needle)
{
if ( !is_array($haystack) ) return false;
return ( in_array($needle, $haystack) ) ? 'selected' : false;
}
/**
* Take an array of unique values and make the keys the same as the value.
* Useful for select boxes for example.
*
* @access public
* @return mixed
* @param array $myArray
* @author Daevid Vincent [daevid@]
*/
function double_up_uh_uh($myArray)
{
foreach($myArray as $k => $v)
$tmp[$v] = $v;
return $tmp;
}
/**
* Returns the first non-empty value in the array,
* Works much like mySQL's function,
* except this is an array passed in rather than a list of parameters.
*
* @access public
* @return mixed
* @param array $myArray
* @author Daevid Vincent [daevid@]
*/
function coalesce($myArray)
{
foreach($myArray as $a) if ($a) return $a;
}
> -----Original Message-----
> From: Don Wieland [mailto:donw@dwdataconcepts.com]
> Sent: Monday, November 09, 2009 2:59 PM
> To: php-general@lists.php.net
> Subject: [PHP] Build Categories based on an static Array
>
> I am trying to build a SELECT MENU (with categories). I cant seem to
> get the syntax correct. Little help:
>
> // Get Areas values for MENU
> $AreasList = "";
>
>
>
> Don Wieland
> D W D a t a C o n c e p t s
> ~~~~~~~~~~~~~~~~~~~~~~~~~
> donw@dwdataconcepts.com
> Direct Line - (949) 305-2771
>
> Integrated data solutions to fit your business needs.
>
> Need assistance in dialing in your FileMaker solution? Check out our
> Developer Support Plan at:
> http://www.dwdataconcepts.com/DevSup.html
>
> Appointment 1.0v9 - Powerful Appointment Scheduling for
> FileMaker Pro
> 9 or higher
> http://www.appointment10.com
>
> For a quick overview -
> http://www.appointment10.com/Appt10_Promo/Overview.html
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php