To moja pierwsza klasa więc nie oczekuję pozytywnych opinii:
<?php
class Form{
public $HTML;
public function start
($action,$method,$rest=array()){ $code="\n<form action=\"".$action."\" method=\"".$method."\"";
foreach($rest as $att=>$value){
$code.= ' '.$att.'="'.$value.'"';
}
}
$code.=">";
$this->HTML=$code;
return $code;
}
$code="</form>\n";
$this->HTML.=$code;
return $code;
}
public function input
($type,$name,$val=NULL,$rest=array()){ $code="<input type=\"".$type."\" name=\"".$name."\"";
$code.=" value=\"".$val."\"";
}
foreach($rest as $att=>$value){
$code.= ' '.$att.'="'.$value.'"';
}
}
$code.=" />\n";
$this->HTML.=$code;
return $code;
}
public function textarea
($name,$val=NULL,$rest=array()){ $code="<textarea name=\"".$name."\"";
foreach($rest as $att=>$value){
$code.= ' '.$att.'="'.$value.'"';
}
}
$code.=">";
$code.=$val;
}
$code.="</textarea>\n";
$this->HTML.=$code;
return $code;
}
public function select
($name,$rest=array(),$options=array()){ $code="<select name=\"".$name."\"";
foreach($rest as $att=>$value){
$code.= ' '.$att.'="'.$value.'"';
}
}
$code.=">\n";
foreach($options as $value=>$att){
$code.= "<option value=\"".$value."\">".$att."</option>";
}
}
$code.="</select>\n";
$this->HTML.=$code;
return $code;
}
}
?>
Przykładowe użycie:
<?php
$form=new Form();
echo $form->start('index.php','post'); echo $form->select('select',array('id'=>'1'),array('1'=>'pierwsza')).'<br />'; echo $form->input('submit','ok','Wyślij'); ?>
Jak ulepszyć tą klasę, aby mozna było dodawać w select dla konkretnego pola selected, dla chceckboxa - checked itp..
Potrzebne mi to do zaznaczania rzeczy przy wypełnianiu formów przez usera oraz przy edycji