... * if readonly == true then display the label corresponding to the selected value * You can use also $this->rowsize to specify the number of lines to display * * @see Database::make_array */ require_once NOALYSS_INCLUDE.'/lib/html_input.class.php'; class ISelect extends HtmlInput { /*!\brief show the html input of the widget*/ public function input($p_name=null,$p_value=null) { $this->name=($p_name==null)?$this->name:$p_name; $this->value=($p_value==null)?$this->value:$p_value; if ( $this->readOnly==true) return $this->display(); $style=(isset($this->style))?$this->style:""; $this->id=($this->id=="")?$this->name:$this->id; $disabled=($this->disabled==true)?"disabled":""; $rowsize = (isset ($this->rowsize)) ? ' size = "'.$this->rowsize.'"':""; $r=""; $a=""; if ( $this->table == 1 ) $a=''.$a.''; return $r.$a; } /*!\brief print in html the readonly value of the widget*/ public function display() { $r=""; for ( $i=0;$ivalue);$i++) { if ($this->selected==$this->value[$i]['value'] ) { $r=h($this->value[$i]['label']); } } // $r=''.$r.''; if ( $this->table == 1 ) $a=''.$r.''; return $r; } /*!\brief print in html the readonly value of the widget*/ public function get_value() { $r=""; for ( $i=0;$ivalue);$i++) { if ($this->selected==$this->value[$i]['value'] ) { $r=h($this->value[$i]['label']); } } return $r; } /** * @brief set the value of an ISelect with the array , this array * is bidimensional , the first dimension is the code to store and the second * is the label to display. * Example * @code * array(array('M'=>'Mister'),array('Ms'=>'Miss')); * // will be turned into * array( array("value"=>'M,"label"=>"Mister")...) * @endcode * @param type $p_array * @return type */ public function transform($p_array) { if (count($p_array)==0) return array(); $a_ret=array(); foreach ($p_array as $key=>$value) { $a_ret['value']=$key; $a_ret['label']=$value; $this->value[]=$a_ret; } } function set_value($p_string) { $this->selected=$p_string; } static public function test_me() { } }