Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

OOP php5 html dilema klase.....

[es] :: PHP :: OOP php5 html dilema klase.....

[ Pregleda: 3690 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kristian!

Član broj: 8348
Poruke: 150
212.200.177.*

Sajt: www.linkoovi.net


+1 Profil

icon OOP php5 html dilema klase.....03.11.2006. u 17:28 - pre 211 meseci
Pozdrav.

Imam problem sa shvatanjem celog koncepta OOP u Web programiranju, tj recimo....

u koliko neka klasa ima metode za vadjenje podataka iz baze da li je ok da ima i metodu koja print-a html tagove recimo dropdown boxa tja <select><option>
i da ga puni ili ovako nesto sasvim odvoiti.... recimo u dva clase ili funkciju koja generise html <select><option> i puni ih iz klase.?


ne znam na kakvu literaturu do obratim paznju.....radio sam malo u c# win applikacije ali web i win aplikacija nije isto.
 
Odgovor na temu

NikolaVeber
NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1254
*.rz.uni-karlsruhe.de.

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Re: OOP php5 html dilema klase.....03.11.2006. u 19:17 - pre 211 meseci
Deo sa prikazom je verovatno najbolje potpuno izdvojiti.

Tako da imas recimo klasu magacin i funkciju nadjiProizvod() koja za odredjeni upit vraca niz tipa proizvod. Onda na stranici "prikaz.php" korisits niz koji dobijes iz klase magacin.

Na taj nacin nadjiProizvod() mozes da koristis i na drugim mestima, u funkcijama koje nemaju veze sa prikazom, a neces imati suvisne funkcije u samoj klasi, koja je klasa sloja logike, ne prikaza.
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
 
Odgovor na temu

kristian!

Član broj: 8348
Poruke: 150
212.200.177.*

Sajt: www.linkoovi.net


+1 Profil

icon Re: OOP php5 html dilema klase.....04.11.2006. u 00:53 - pre 211 meseci
konekcija na bazu:
Code:

           class DB_CONNECTION{
        
        protected $dbhost = "localhost";    // Database Host Name
        protected $dbuser = "root";            // Database User Name
        protected $dbpass = "";                // Databese User Password
        protected $dbname = "test";        // Database Name
        protected $conn;
        public $result;
        
        protected function _createConnection(){
            return mysql_connect($this->dbhost, $this->dbuser, $this->dbpass);
        }
        protected function _selectDB($connection){
            return mysql_select_db($this->dbname, $connection);
        }
        public function _connect($sql){
            $this->conn = $this->_createConnection();
            $this->_selectDB($this->conn);
            $this->result = mysql_query($sql, $this->conn) or die(mysql_error("Erroir: ".$this->conn));
        }
        public function _cloaseConnection(){
            mysql_close($this->conn);
        }
    }


Code:

           class CATEGORIES{
        private $i = 0;
        private $groupARRAY = array();
        public function _getResult($result){
            while ($red = mysql_fetch_array($result)) {
                $this->groupARRAY["ID"][$this->i] = $red[id];
                $this->groupARRAY["DESCRIPTION"][$this->i] = $red[description];
                $this->i++;
            }
        }
        public function _showArrCount(){
            return $this->i;
        }
        public function _showID($count){
            return $this->groupARRAY["ID"][$count];
        }
        public function _showDESCRIPTION($count){
            return $this->groupARRAY["DESCRIPTION"][$count];            
        }
        
    }

E sada odavde nisam siguran da li je ovo pametno (mislim da ce resiti Copy/Paste koda mada hmm...):
Code:

class FORM{

    public function _showBeginForm($forName){
        print "<form name=\"".$forName."\" enctype=\"multipart/form-data\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">\n";
    }
    public function _showTextBox($type, $id, $frmName, $disabled){
        ($disabled == true)? $status = "disabled=\"disabled\"" :  $status = "";
        print "<input type=\"".$type."\" id=\"".$id."\" name=\"".$frmName."\"  ".$status." />";
    }
    public function _showBeginSelect($id, $style){
        print "<select class=\"".$style."\" name=\"categories\" id=\"".$id."\">\n";
    }
    public function _showOption($value, $title){
            print "<option value=\"".$value."\">".$title."</option>\n";
    }
    public function _showEndSelect(){
        print "</select>";
    }
    public function _showLoginButton(){
        print "<input src=\"graphics/btn-login.gif\" type=\"image\" />\n";
    }
    public function _showSearchButton(){
        print "<input src=\"graphics/btn-search.gif\" type=\"image\" />\n";
    }
    public function _showEndForm(){
        print "</form>\n";
    }
}


Prikaz:
Code:

<?php 
$db->_connect("SELECT * FROM img_groups");    //connect tu data base
$categoriesOBJ->_getResult($db->result);    //get data
?>    
<table cellpadding="0" cellspacing="0" border="0" class="default">
<tr>
     <td height="5"></td>
</tr>
<tr>
     <td><?php $formOBJ->_showBeginForm("categories"); //display <form>?></td>
</tr>
<tr>
     <td class="caption">Image categorys:<br>
     <?php 
    $formOBJ->_showBeginSelect("textboxSearch", ""); // display <select>
    for ($tmp=0; $tmp <= $categoriesOBJ->_showArrCount()-1; $tmp++){
          $formOBJ->_showOption($categoriesOBJ->_showID($tmp), $categoriesOBJ->_showDESCRIPTION($tmp)); //display <OPTION value=""></OPTION>
    }
    $formOBJ->_showEndSelect(); //display </selection>
      ?>
      </td>
</tr>
<tr>
     <td><?php  $formOBJ->_showEndForm(); //display </form> ?></td>
</tr>
</table>
                                    
<?php    
$db->_cloaseConnection();    //close conection
?>


eto cini mi se da sam zakomplikovao samo tako!!!
Ako nekoga ne mrzi da baci pogled i da izkomentarise kako bi ovo trebalo uraditi :)
 
Odgovor na temu

NikolaVeber
NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1254
*.rz.uni-karlsruhe.de.

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Re: OOP php5 html dilema klase.....04.11.2006. u 01:11 - pre 211 meseci
FORM bi mogao da napravis malo drugacije: napravi klasu FORM koja sardzi objekte tipa FIELD (vrsta polja, vrednost i slicni parametri) i onda imas recimo $form->addSubmit("Submit dugme"); i slicno, $form->setType("get" | "post"); i tako dalje. Na kraju imas $form->print();

Drugih zamerki ne bih imao. Osim mozda da u CATEGORIES funkciju _getResult($result) zamenis sa addOption(), i da ubacujes red po red.
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
 
Odgovor na temu

djordje
Novi Sad

Član broj: 3704
Poruke: 1725
*.dynamic.sbb.co.yu.



+3 Profil

icon Re: OOP php5 html dilema klase.....20.12.2006. u 02:12 - pre 210 meseci
Evo kako sam ja napravio FORM klasu. Formular se organizuje u tabelu kojoj se izgled moze menjati uz pomoc CSS-a. Svaki element tabele i formulara ima class i id atribut.

detalji formilara (class, id, action, post/get) se podesavaju u konstruktoru obavezno;
SetTable() sluzi za podesavanje tabele u kojoj ce biti elementi formulara
wrap() metoda "umotava" elemente formulara koje ste dodali u jednu celiju tabele(desnu celiju) i daje opis (na screenshotu to je leva kolona tabele). Svaki put kad se ova metoda pozove, umotaju se elementi koji nisu "umotani" ranije
insert_code() sluzi za ubacibanje nekog HTML koda izmedju elemenata, recimo <br> za nov red
display() iscrtava formular
ostale metode dodaju elemente forme. posebno je zaniumljiva ova: adddropdownbox() koja dodaje padajuci meni i sve opcije u jedno koraku. Opcije se salju u asocijativnom nizu.

Ovo sam odradio za jedan dan, pa je verovatno puno kojekakvih propusta.

Molim za komentare!

Code:
<?php

class Form{

        var $action;
        var $f_class;
        var $id;
        var $method;
        
        var $table_id;
        var $table_class;
        var $title_column_class;
        var $content_column_class;
        
        var $content;
        var $not_wrapped;
        
        function Form($action, $class_par, $id, $method = "POST"){
                if($method!="POST" and $method!="GET"){
                        die("Form method error!");
                }
                
                $this->action = $action;
                $this->f_class = $class_par;
                $this->id = $id;
                $this->method = $method;
        }
        
        function SetTable($table_class_par, $table_id_par, $title_column_class_par, $content_column_class_par){
                $this->table_id = $table_class_par;
                $this->table_class = $table_id_par;
                $this->title_column_class = $title_column_class_par;
                $this->content_column_class = $content_column_class_par;
        }
        
        function wrap($text=""){
                if($this->not_wrapped != ""){
                        $this->content .= "<tr>\n";
                        $this->content .= "<td class='$this->title_column_class'>$text</td>\n";
                        $this->content .= "<td class='$this->content_column_class'>$this->not_wrapped</td>\n";
                        $this->content .= "</tr>\n";
                        $this->not_wrapped = "";
                }
        }

        function insert_code($code){
                $this->not_wrapped .= $code;
        }

        function display(){
                echo "<form action='$this->action' class='$this->f_class' id=' $this->id' method='$this->method'>"; //form start
                echo "<table id='$this->table_id' class='$this->table_class'>"; //table start               
                if($this->not_wrapped != "") $this->wrap();               
                echo $this->content;                
                echo "</table>";
                echo "</form>";
        }
        
//elementi forme
        function addtextbox($name, $size, $value, $class, $id, $wrap_it="_no_wrapping"){
                $this->not_wrapped .= "<input type='text' name='$name' size='$size' value='$value' class='$class' id='$id'>";
                if ($wrap_it!="_no_wrapping") $this->wrap($wrap_it);
        }
        
        function addtextarea($name, $rows, $cols, $value, $class, $id, $wrap_it="_no_wrapping"){
                $this->not_wrapped .= "<textarea rows='$rows' name='$name' cols='$cols' class='$class' id='$id'>$value</textarea>";
                if ($wrap_it!="_no_wrapping") $this->wrap($wrap_it);
        }
        
        function addcheckbox($name, $value, $class, $id, $text, $wrap_it="_no_wrapping"){
                $this->not_wrapped .= "<input type='checkbox' name='$name' class='$class' id='$id' value='$value'>$text";
                if ($wrap_it!="_no_wrapping") $this->wrap($wrap_it);
        }

        function addradiobutton($group_name, $value, $class, $id, $text, $checked, $wrap_it="_no_wrapping"){
                if($checked==0){
                        $this->not_wrapped .= "<input type='radio' value='$value' name='$group_name' class='$class' id='$id'>$text";
                }else{
                        $this->not_wrapped .= "<input type='radio' value='$value' checked name='$group_name' class='$class' id='$id'>$text";
                }
                if ($wrap_it!="_no_wrapping") $this->wrap($wrap_it);
        }
        
        function adddropdownbox($name, $size, $value_array, $sel_val, $class, $id, $multiple, $wrap_it="_no_wrapping"){
                $this->not_wrapped .= "<select size='$size' name='$name' class='$class' id='$id'";
                if($multiple == 1) $this->not_wrapped .=  "multiple";
                $this->not_wrapped .= ">\n";
                
                        foreach($value_array as $asoc => $val){
                                if($val!=$sel_val){
                                        $this->not_wrapped .= "<option value='$val'>$asoc</option>\n";
                                }else{
                                        $this->not_wrapped .= "<option selected value='$val'>$asoc</option>\n";
                                }
                                
                        }
                
                $this->not_wrapped .= "</select>\n";
                if ($wrap_it!="_no_wrapping") $this->wrap($wrap_it);
        }
        
        function addbutton($name, $value, $type, $class, $id, $wrap_it="_no_wrapping"){
                switch ($type){
                        case 0 :
                                $this->not_wrapped .= "<input type='button' value='$value' name='$name' class='$class' id='$id'>";
                                break;
                        case 1 :
                                $this->not_wrapped .= "<input type='submit' value='$value' name='$name' class='$class' id='$id'>";
                                break;
                        case 2 :
                                $this->not_wrapped .= "<input type='reset' value='$value' name='$name' class='$class' id='$id'>";
                                break;
                        default :
                                $this->not_wrapped .= "<input type='button' value='$value' name='$name' class='$class' id='$id'>";
                                break;
                }
                if ($wrap_it!="_no_wrapping") $this->wrap($wrap_it);
        }

};

?>



i evo primena:

Code:

<?php

include ('./form.class.php');

$t = new Form($_SERVER['PHP_SELF'], "klasa", "ajdi");
$t->settable("4", "tabele", "title", "content");
$t->addtextbox("name", "45", "value", "class", "id", "Ime : ");
$t->addtextbox("name", "40", "value", "class", "id", "Prezime : ");
$t->addtextbox("name", "40", "value", "class", "id", "Adresa : ");
$t->addtextbox("name", "40", "value", "class", "id");
$t->wrap("neki text jedan: ");
$t->addtextarea("alo", 10, 20, "Neka vrednost\njos neka vrednost", "klasa", "id", "wrap");
$t->addcheckbox("juhu", "ON", "klasica", "ajdi", "tekst pored");
$t->insert_code(" - ");
$t->addcheckbox("juhu", "ON", "klasica", "ajdi", "tekst pored", "opis");
$t->addradiobutton("grupa1", 1, "klasa", "ajdi", "tekstic pored:", 0);
$t->insert_code("<br>\n");
$t->addradiobutton("grupa1", 1, "klasa", "ajdi", "tekstic pored:", 0);
$t->insert_code("<br>");
$t->addradiobutton("grupa1", 1, "klasa", "ajdi", "tekstic pored:", 0, "45454");
$t->addradiobutton("grupa2", 1, "klasa", "ajdi", "tekstic pored:", 0);
$t->insert_code(" - ");
$t->wrap("neki text : ");

$arr['ime']="Djordje";
$arr['neki_kurac']="Vrednost";
$t->adddropdownbox("ime", 1, $arr, "Vrednost", "klasa", "ajdi", 0, "neki tekstic");

$t->addbutton("ime", "Dalje", 1, "klasa", "id", "wrapping:");
$t->display();

?>


a evo kako to izgleda (uz jako los CSS ):

http://static.elitesecurity.org/uploads/1/4/1400397/form.JPG

Evo jos jedan primer upotrebe:

Code:
<?php

include ('./form.class.php');

$form = new Form($_SERVER['PHP_THIS'], "klasa", "id");

$form->settable("4", "tabele", "title", "content");

$form->addtextbox("username", "25", "", "", "", "Korisnicko ime : ");
$form->addtextbox("password", "25", "", "", "", "Sifra : ");
$form->addbutton("login_button", "Login", 1, "", "", "");

$form->display();

?>


i to izgleda ovako:

http://static.elitesecurity.org/uploads/1/4/1400397/form2.JPG

[Ovu poruku je menjao djordje dana 20.12.2006. u 03:41 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

[es] :: PHP :: OOP php5 html dilema klase.....

[ Pregleda: 3690 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.