Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/03/2011, 00:38
jjhoncv25
 
Fecha de Ingreso: octubre-2009
Mensajes: 21
Antigüedad: 15 años, 1 mes
Puntos: 0
crear select con programacion orientado a objetos

Hola amigos nuevamente, tengo este codigo lo e recontra revisado pero hasta el momento no veo cual es el error weno lo que imprime es frutas:y un combo vacio nada mas, realmente me gustaria que me ayudaran a vieran donde esta este error.

<?php //archivo se llama clases.php

class Select extends Element{
protected $options;

public function _construct(){
parent::_construct();
$this->options=array();
}

public function creaOption($option){
$this->options[]=$option;
}

private function traeOptions(){
return (array)$this->options;
}

public function render(){
echo $this->traeLabel().":<br/>\n";
echo "<select name=\"".$this->traeName()."\">\n";
foreach ($this->traeOptions() as $opt){
echo $opt->render();
//echo $this->traeOptions();
}
echo "</select>";
}
}

class Option extends Element{

public function _construct($value,$label){
parent::_construct();
$this->creaValue($value);
$this->creaLabel($label);
}

public function render(){

echo "<option value=\"".$this->traeValue()."\">".$this->traeLabel()."</option>\n";
}
}

class Element{
private $name;
private $value;
private $label;

public function _construct(){ }

public function creaName($name){
$this->name=$name;
}

public function traeName(){
return $this->name;
}

public function creaValue($value){
$this->value=$value;
}

public function traeValue(){
return $this->value;
}

public function creaLabel($label){
$this->label=$label;
}

public function traeLabel(){
return $this->label;
}

}
?>

<?php

include ('clases.php');

$frutas=new Select();
$frutas->creaLabel('Frutas');
$frutas->creaName('frut_sel');
$frutas->creaOption(new Option('Naranjas','Naranjas'));
$frutas->creaOption(new Option('Fresas','Fresas'));
$frutas->creaOption(new Option('Piñas','Piñas'));
$frutas->creaOption(new Option('Plátanos','Plátanos'));
$frutas->creaOption(new Option('Manzanas','Manzanas'));
$frutas->render();

?>


ojala que me ayuden con esto.