Avatar billede katja_kh Nybegynder
15. februar 2008 - 10:55 Der er 4 kommentarer og
1 løsning

OOP: Class der kan opbygge en formular.

Jeg skal lave en class, som kan opbygge en formular for mig. Jeg er rimelig meget nybegynder indefor OOP. Jeg har opbygget følgende indtil videre og nu er jeg lidt lost. Er der nogle som kan guide mig til hvad jeg skal foretage mig i min class.

<?php
class form{
   
    private $formStart, $formSlut, $select, $inputText, $submit;
   
    function __construct(){
        $this->formStart='';
        $this->formSlut='';
        $this->select='';
        $this->inputText='';
        $this->submit='';
       
    }
   
    public function setformStart($formStart){
        $this->formStart=$formStart;       
    }
   
    public function getformStart(){
        return $this->formStart;
    }
   
    public function setformSlut($formSlut){
        $this->formSlut=$formSlut;       
    }
   
    public function getformSlut(){
        return $this->formSlut;
    }
   
    public function setselect($select){
        $this->select=$select;       
    }
   
    public function getselect(){
        return $this->select;
    }
   
    public function setinputText($inputText){
        $this->inputText=$inputText;       
    }
   
    public function getinputText(){
        return $this->inputText;
    }
   
    public function setsubmit($submit){
        $this->submit=$submit;       
    }
   
    public function getsubmit(){
        return $this->submit;
    }
   
}

?>
Avatar billede rax Praktikant
15. februar 2008 - 11:38 #1
hmm, du bør nok overveje hvordan din klasse egentlig skal virke.. indtil videre ser det ud som om, at du blot parametreroverfører hele html-strengen som skal bruges til at lave formen.. hvilket mere eller mindre fjerner ideen med din klasse.

istedet bør du parameteroverføre de ting, som varierer fra inputfelt til inputfelt. lad os som eksempel kigge på din metode til at indsætte et textfelt. der har du skrevet:

public function setinputText($inputText){
      $this->inputText=$inputText;       
  }

forestil dig istedet en metode som denne:

public function setInputText($name, $id="", $value="")
{
  $input = "<input type=\"text\" name=\"\";
  $input .= ($id != "" ? "id=\"$id\"" : "";
  $input .= ($value != "" ? "value=\"$value\"" : "";
  $input .= " </input>";

  // føj feltet til formen, returner det, eller et eller andet
}

Det vigtigeste her er at forstå idéen i denne måde at gøre det på. Syntaksen er mindre vigtig, og det er ikke den jeg har brugt tid på ;) Men altså, parameteroverfør de værdier som varierer fra inputfelt til inputfelt, og lad metoderne dynamisk sammenstykke dine elementer.

Håber det hjalp :) ellers skriver du bare igen ;)
Avatar billede rax Praktikant
15. februar 2008 - 11:39 #2
hov, der skulle selvfølgelig have stået $input = "<input type=\"text\" name=\"$name\";
Avatar billede katja_kh Nybegynder
03. marts 2008 - 10:45 #3
jeg har lavet noget nu som ser ud som følger, men nu er jeg gået lidt i stå.
Kan du hjælpe mig rax. Jeg skal have lavet et input felt og en select box med tal og en submit knap.

<?php
class form{
   
private $fortext, $array, $name='navn'; //objektets data

function __construct(){//konstruktørmetoden
    }

public function getInput($fortext, $name='navn'){
    $input="$fortext <input type='text' name=$name>";
   
}

public function Select($fortext, $name='navn', $array){
    $select="$fortext <select name=$name>";
    for ($i=0;$i<=count($array);$i++){
        $select="<option value=$i> $array=[$i] </option>";
       
    }
}
   
   
   
}

?>
Avatar billede katja_kh Nybegynder
12. marts 2008 - 11:02 #4
Jeg har fået lavet en formular class med hjælp fra min lære.
Jeg fik ikke så meget ud af din kommentar rax.
Derfor svarer jeg lige selv, hvis du føler at det er uretfærdigt så sig til.
Avatar billede rax Praktikant
12. marts 2008 - 11:58 #5
det er helt fint :) har ikke lige haft tid til at uddybe nærmere. Men blot du kom videre, det er jo det det handler om :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester