| Source for file select.phpDocumentation is available at select.php 
/* vim: set expandtab tabstop=4 shiftwidth=4: */// +----------------------------------------------------------------------+// +----------------------------------------------------------------------+// | Copyright (c) 1997-2003 The PHP Group                                |// +----------------------------------------------------------------------+// | This source file is subject to version 2.0 of the PHP license,       |// | that is bundled with this package in the file LICENSE, and is        |// | available at through the world-wide-web at                           |// | http://www.php.net/license/2_02.txt.                                 |// | If you did not receive a copy of the PHP license and are unable to   |// | obtain it through the world-wide-web, please send a note to          |// | license@php.net so we can mail you a copy immediately.               |// +----------------------------------------------------------------------+// | Authors: Adam Daniel <adaniel1@eesus.jnj.com>                        |// |          Bertrand Mansion <bmansion@mamasam.com>                     |// +----------------------------------------------------------------------+// $Id: select.php,v 1.29 2005/07/22 17:30:51 avb Exp $require_once('HTML/QuickForm/element.php'); * Class to dynamically create an HTML SELECT * @author       Adam Daniel <adaniel1@eesus.jnj.com> * @author       Bertrand Mansion <bmansion@mamasam.com>     * Contains the select options     * Default values of the SELECT     * @param     string    Select name attribute     * @param     mixed     Label(s) for the select     * @param     mixed     Data to be used to populate options     * @param     mixed     Either a typical HTML attribute string or an associative array        $this->_persistantFreeze = true;     * Returns the current API version     * Sets the default values of the select box     * @param     mixed    $values  Array or comma delimited string of selected values            $values = split("[ ]?,[ ]?", $values) ;            $this->_values = array($values) ;     * Returns an array of the selected values     * @return    array of selected values    } // end func getSelected     * Sets the input field name     * @param     string    $name   Input field name attribute        $this->updateAttributes( array('name' => $name)) ;     * Returns the element name        return $this->getAttribute('name') ;     * Returns the element name (possibly with brackets appended)        if ($this->getAttribute('multiple')) {    } //end func getPrivateName     * Sets the value of the form element     * @param     mixed    $values  Array or comma delimited string of selected values     * Returns an array of the selected values     * @return    array of selected values     * Sets the select field size, only applies to 'multiple' selects     * @param     int    $size  Size of select  field        $this->updateAttributes( array('size' => $size)) ;     * Returns the select field size        return $this->getAttribute('size') ;     * Sets the select mutiple attribute     * @param     bool    $multiple  Whether the select supports multi-selections            $this->updateAttributes( array('multiple' => 'multiple')) ;            $this->removeAttribute('multiple') ;     * Returns the select mutiple attribute     * @return    bool    true if multiple select, false otherwise        return (bool)$this-> getAttribute('multiple') ;     * Adds a new OPTION to the SELECT     * @param     string    $text       Display text for the OPTION     * @param     string    $value      Value for the OPTION     * @param     mixed     $attributes Either a typical HTML attribute string     *                                   or an associative array    function addOption($text, $value, $attributes=null)        if (null === $attributes) {            $attributes = array('value' => $value) ;            $attributes = $this-> _parseAttributes($attributes) ;            if (isset($attributes['selected'])) {                // the 'selected' attribute will be set in toHtml()                $this->_removeAttr('selected', $attributes) ;                    $this->_values = array($value) ;                } elseif (!in_array($value, $this->_values)) {                    $this->_values[] = $value ;            $this->_updateAttrArray($attributes, array('value' => $value)) ;        $this->_options[] = array('text' => $text, 'attr' => $attributes) ;     * Loads the options from an associative array     * @param     array    $arr     Associative array of options     * @param     mixed    $values  (optional) Array or comma delimited string of selected values     * @return    PEAR_Error on error or true            return PEAR:: raiseError('Argument 1 of HTML_Select::loadArray is not a valid array') ;        foreach ($arr as $key => $val) {            // Warning: new API since release 2.3     * Loads the options from DB_result object     * If no column names are specified the first two columns of the result are     * used as the text and value columns respectively     * @param     object    $result     DB_result object     * @param     string    $textCol    (optional) Name of column to display as the OPTION text     * @param     string    $valueCol   (optional) Name of column to use as the OPTION value     * @param     mixed     $values     (optional) Array or comma delimited string of selected values     * @return    PEAR_Error on error or true    function loadDbResult(&$result, $textCol=null, $valueCol =null, $values =null)            return PEAR:: raiseError('Argument 1 of HTML_Select::loadDbResult is not a valid DB_result') ;        $fetchMode = ($textCol && $valueCol) ? DB_FETCHMODE_ASSOC : DB_FETCHMODE_DEFAULT;        while (is_array($row = $result-> fetchRow($fetchMode)) ) {            if ($fetchMode == DB_FETCHMODE_ASSOC) {                $this->addOption($row[$textCol], $row[$valueCol]);    } // end func loadDbResult     * Queries a database and loads the options from the results     * @param     mixed     $conn       Either an existing DB connection or a valid dsn     * @param     string    $sql        SQL query string     * @param     string    $textCol    (optional) Name of column to display as the OPTION text     * @param     string    $valueCol   (optional) Name of column to use as the OPTION value     * @param     mixed     $values     (optional) Array or comma delimited string of selected values    function loadQuery(&$conn, $sql, $textCol=null, $valueCol =null, $values =null)            $dbConn = & DB:: connect($conn, true) ;            if (DB:: isError($dbConn)) {            return PEAR:: raiseError('Argument 1 of HTML_Select::loadQuery is not a valid type') ;        $result = $dbConn-> query($sql) ;        if (DB:: isError($result)) {     * Loads options from different types of data sources     * This method is a simulated overloaded method.  The arguments, other than the     * first are optional and only mean something depending on the type of the first argument.     * If the first argument is an array then all arguments are passed in order to loadArray.     * If the first argument is a db_result then all arguments are passed in order to loadDbResult.     * If the first argument is a string or a DB connection then all arguments are     * passed in order to loadQuery.     * @param     mixed     $options     Options source currently supports assoc array or DB_result     * @param     mixed     $param1     (optional) See function detail     * @param     mixed     $param2     (optional) See function detail     * @param     mixed     $param3     (optional) See function detail     * @param     mixed     $param4     (optional) See function detail     * @return    PEAR_Error on error or true    function load(&$options, $param1=null, $param2 =null, $param3 =null, $param4 =null)            case (is_a($options, 'db_result')) :                return $this->loadDbResult($options, $param1, $param2, $param3);                return $this->loadQuery($options, $param1, $param2, $param3, $param4);     * Returns the SELECT in HTML        if ($this->_flagFrozen) {            $tabs    = $this-> _getTabs() ;            if ($this->getComment() != '') {                $strHtml .= $tabs . '<!-- ' . $this-> getComment() . " //-->\n" ;                $attrString = $this-> _getAttrString($this->_attributes) ;                $attrString = $this-> _getAttrString($this->_attributes) ;            $strHtml .= $tabs . '<select' . $attrString . ">\n" ;            foreach ($this->_options as $option) {                if (is_array($this->_values) && in_array( (string)$option['attr']['value'], $this->_values)) {                    $this->_updateAttrArray($option['attr'], array('selected' => 'selected')) ;                $strHtml .= $tabs . "\t<option" . $this-> _getAttrString($option['attr']) . '>' .                            $option['text'] . "</option>\n" ;            return $strHtml . $tabs . '</select>' ;     * Returns the value of field without HTML tags            foreach ($this->_values as $key => $val) {                for ($i = 0, $optCount = count($this->_options) ; $i < $optCount ; $i ++) {                    if ((string)$val == (string)$this->_options[$i]['attr']['value']) {                        $value[$key] = $this->_options[$i]['text'] ;        $html = empty($value) ? ' ' : join('<br />', $value) ;        if ($this->_persistantFreeze) {            // Only use id attribute if doing single hidden input            if (1 == count($value)) {                $id     = $this-> getAttribute('id') ;                $idAttr = isset($id) ? array('id' => $id) : array() ;            foreach ($value as $key => $item) {                $html .= '<input' . $this-> _getAttrString( array(                             'value' => $this->_values[$key]    } //end func getFrozenHtml    * We check the options and return only the values that _could_ have been    * selected. We also return a scalar value if select is not "multiple"        $value = $this-> _findValue($submitValues) ;        if (is_array($value) && ! empty($this->_options)) {                for ($i = 0, $optCount = count($this->_options) ; $i < $optCount ; $i ++) {                    if ($v == $this->_options[$i]['attr']['value']) {            return $this->_prepareValue($cleanValue[ 0], $assoc) ;            return $this->_prepareValue($cleanValue, $assoc) ;    // {{{ onQuickFormEvent()        if ('updateValue' == $event) {            $value = $this-> _findValue($caller-> _constantValues) ;                $value = $this-> _findValue($caller-> _submitValues) ;                // XXX: should we push this to element::onQuickFormEvent()?                if (null === $value && !$caller-> isSubmitted()) {                    $value = $this-> _findValue($caller-> _defaultValues) ;            return parent:: onQuickFormEvent($event, $arg, $caller) ;} //end class HTML_QuickForm_select
		    
 
		    Documentation generated on Mon, 11 Mar 2019 14:16:36 -0400 by phpDocumentor 1.4.4 . PEAR Logo Copyright ©  PHP Group 2004.
	       |