... * 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 */ /*! * \class ISelect * \brief Html Input , create a tag * 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 */ class ISelect extends HtmlInput { /** * Constructor , $p_value is supposed to be an array * @param string $p_name name of the element * @param array $p_value * @param DOMID $p_id */ function __construct($p_name="", $p_value="", $p_id="") { parent::__construct($p_name, $p_value, $p_id); if ( $p_value =="" ) { $this->value=[]; } else { $this->value=$p_value; } } /*! * \brief show the html input of the widget * \note to use a OPTGROUP, the key "value" must be null , it is important * to note that it is needed to use for opening and closing the element * \code $select->value=array( array ("value"=>null,"label"=>"Groupe 1"), array ("value"=>1,"label"=>"Element 1"), array ("value"=>2,"label"=>"Element 2"), array ("value"=>null,"label"=>"END Groupe 1"), // not displaid array ("value"=>null,"label"=>"Groupe 2"), array ("value"=>1,"label"=>"Element 1"), array ("value"=>2,"label"=>"Element 2"), array ("value"=>null,"label"=>"END group Groupe 1")// not displaid ); * * \endcode * * */ 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=""; if ($this->value == null) { $this->value=array(); } for ( $i=0;$ivalue);$i++) { if ($this->selected==$this->value[$i]['value'] ) { $r=htmlentities($this->value[$i]['label'],ENT_QUOTES|ENT_HTML5,'UTF-8',true); } } // $r=''.$r.''; if ( $this->table == 1 ) $r=''.$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=$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 array $p_array */ public function transform($p_array) { if (! is_array($p_array) || count($p_array)==0) return ; $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() { } }