Feedback OOP Fomulier (simpel scriptje)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back end developer Digital agency

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 20 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

Medior Front end developer React

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor op de

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

Lead Webdeveloper

As Lead Web Developer at KUBUS you are responsible for the implementation design of requirements and the software architecture of the web application and services of BIMcollab. In your role as lead developer you will naturally search for the optimum between the required implementation time, the performance of the application and a fast go-to-market of features, in line with our automated test and release train. Together with the other senior developers in your team you monitor the architecture of the application and you advise the product owner about necessary refactoring to improve the maintainability of the platform. Our development team

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

.NET developer

Functie Als senior .NET ontwikkelaar en aankomend lead developer ben jij in één van de drie development teams verantwoordelijk voor het volgende: • Jij hebt een oogpunt op modernisering en bent verantwoordelijk voor de technische staat en architectuur van de applicatie; • Jij bent verantwoordelijk voor het reviewen van de technische haalbaarheid van verschillende onderwerpen; • Jij bent verantwoordelijk voor een goede aansluiting binnen het multidisciplinaire team en de bijbehorende taken; • Jij bent verantwoordelijk voor het aandragen van verbetervoorstellen en ontwikkelstandaarden in zowel de techniek als architectuur; • Jij bent meewerkend voorman en ondersteunt en coacht jouw team op

Bekijk vacature »

Software Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Software Programmeur

Functie omschrijving Ben jij op zoek naar een organisatie waar je samen met een team werkt aan iets moois en waar je naast hard werken ook hard kunt lachen? Dan ben je hier aan het juiste adres! Voor een informeel IT-bedrijf in omgeving Wassenaar zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een gewaardeerde werkgever in regio Oosterhout zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je brengt de aanpassingssuggesties van klanten in kaart, om

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Dordrecht zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met

Bekijk vacature »

C# .NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Ontwikkelen in Blazor; Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie. Hier ga je werken Binnen deze organisatie werken duizenden mensen binnen allerlei verschillende disciplines. Tevens hebben zij veel specialiteiten in huis, waaronder ook .Net Developers. Ter uitbreiding van een nieuw team en ter ondersteuning van het project zijn ze opzoek naar een nieuwe collega voor het team. Als C#.NET Developer zal jij je

Bekijk vacature »

.NET Developer te Naarden

Bedrijfsomschrijving Voor mijn klant ben ik op zoek naar een .NET Developer om het huidige team te komen versterken. Deze organisatie bevindt zich in de logistieke sector, en zij hebben een eigen ERP systeem ontwikkeld dat zij inzetten ter optimalisatie van de logistieke processen van haar eindklanten. Deze organisatie bestaat inmiddels al ruim 20 jaar, waarbij zij een duidelijke missie hebben, namelijk: het werk van de eindklant makkelijker maken door de systemen die zij leveren. Ze werken over heel de wereld, wat deze organisatie een echte internationale speler maakt. Binnen de organisatie kenmerken ze zich door een dynamische en professionele

Bekijk vacature »

Traineeship Front-end developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »
Robert  dat ben ik

Robert dat ben ik

11/09/2011 15:33:40
Quote Anchor link
Goede middag,

Ik zelf ben pas een maandje of 5 bezig met OOP

en vroeg ik me af hoe dit er uit ziet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
class Form_Element {
    public $type   = ''; //default
    public $label  = 'label'; //default

    public function __construct($type) {
        $type = trim($type);
        if($type == 'text' || $type == 'password' || $type == 'button') {          
            $this->type = $type;
            return $this;
        }
else {
            throw new Exception("kan dit object niet aanmaken, het type:".$type." komt niet overeen met het systeem.");
        }
    }

    public function setLabel($label) {
        $this->label = trim($label);
        return $this;
    }
}


class Form {
    public $form;
    public function addElements($array) {
        if(is_array($array)) {
            if(!empty($array)) {
                $this->form = '<form action="index.php" method="post">'."\r\n";
                foreach ($array as $element) {
                    switch ($element->type) {
                        case
'text':
                            $this->form .= '<label>'.$element->label.':</label> <input type="text" name="'.strtolower($element->label).'">'."\r\n";
                            break;
                            
                        case
'password':
                            $this->form .= '<label>'.$element->label.':</label> <input type="password" name="'.strtolower($element->label).'">'."\r\n";
                            break;

                        case
'button':
                            $this->form .= '<input type="submit" name="submit" value="'.$element->label.'">'."\r\n";
                            break;
                    }
                }

                $this->form .= '</form>';
                    echo $this->form;
            }
else {
                throw new Exception("Error: array() is empty.");
            }
        }
else {
            throw new Exception("Error: Can't use the addElements, it most be an array() to match the system.");
        }
    }
}




//dit word de code die je voortaan gebruikt voor een fomulier
try {
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        //post process example: $post = new Form_Post(trim($_POST['username']),sha1($_POST['password']));
        echo'hier komt het process';
    }
else {
        $username = new Form_Element('text');
        $username->setLabel('Username');
        
        $password = new Form_Element('password');
        $password->setLabel('Password');
        
        $button = new Form_Element('button');  
        $button->setLabel('Login');
        
        $form = new Form();
        $form->addElements(array($username,$password,$button));
    }
}
catch (Exception $e) {
    echo $e->getMessage();
}

?>


het is uiteraard nog een klein simpel scriptje die alleen een login fomulier maakt, dit word nog uitgebreid zodat er meer elementen bij komen.

maar ik vroeg me af of het op deze manier goed gaat :)

en of ik dingen anders moet doen.

greetz Rob.
Gewijzigd op 11/09/2011 16:50:30 door Robert dat ben ik
 
PHP hulp

PHP hulp

27/04/2024 06:56:36
 
Crude Oil

Crude Oil

11/09/2011 16:14:34
Quote Anchor link
Ik snap eigenlijk niet waarom je op zo'n manier een form wil maken
 
Robert  dat ben ik

Robert dat ben ik

11/09/2011 16:23:49
Quote Anchor link
Crude Oil op 11/09/2011 16:14:34:
Ik snap eigenlijk niet waarom je op zo'n manier een form wil maken


geef eens wat meer informatie waarom niet?

graag wil ik dus feedback hebben wat ik anders zou moeten doen

greetz rob
 
Crude Oil

Crude Oil

11/09/2011 16:28:28
Quote Anchor link
waarom zou je met veel phpcode een form maken, lijkt me niet nuttig. Het is nog veel korter om meteen de htmlcode te gebruiken.
Gewijzigd op 11/09/2011 16:56:52 door Crude Oil
 
Robert  dat ben ik

Robert dat ben ik

11/09/2011 16:49:39
Quote Anchor link
Crude Oil op 11/09/2011 16:28:28:
waarom zou je met veel phpcode een form maken, lijkt mme niet nuttig. Het is nog veel korter om meteen de htmlcode te gebruiken.


Niet als je een framework wilt maken.
dan is het wel nuttig zulke opties te hebben.

greetz Rob
 
Crude Oil

Crude Oil

11/09/2011 16:55:09
Quote Anchor link
Zeg dat dan meteen :P
Gewijzigd op 11/09/2011 16:55:36 door Crude Oil
 
Robert  dat ben ik

Robert dat ben ik

11/09/2011 17:00:36
Quote Anchor link
Crude Oil op 11/09/2011 16:55:09:
Zeg dat dan meteen :P


mijn fout :) sorry :)

maar hoe lijkt dit dan kwa opstelling?
 
Pim -

Pim -

12/09/2011 16:56:21
Quote Anchor link
Je moet niet direct bij het toevoegen van elementen de HTML gaan renderen. Dan kan er namelijk helemaal niets meer aangepast worden. Gebruik dus een render() of __toString() methode (liefst beide).
 
Robert  dat ben ik

Robert dat ben ik

12/09/2011 17:17:23
Quote Anchor link
Pim - op 12/09/2011 16:56:21:
Je moet niet direct bij het toevoegen van elementen de HTML gaan renderen. Dan kan er namelijk helemaal niets meer aangepast worden. Gebruik dus een render() of __toString() methode (liefst beide).


bedankt voor je reactie Pim!


hoe moet ik me dit voorstellen die 2 methode's?
wat doet wat? en hoe zou dit er uit kunnen zien ongeveer?

al vast bedankt

Rob
 
Pim -

Pim -

12/09/2011 17:28:49
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php

class Form {
    protected $_elements = array();
    public function addElements(array $elements) {
        $this->_elements += $elements;
    }


    public function render() {

        $string = '<form action="index.php" method="post">'."\r\n";
                foreach ($this->_elements as $element) {
                    switch ($element->type) {
                        case
'text':
                            $string .= '<label>'.$element->label.':</label> <input type="text" name="'.strtolower($element->label).'">'."\r\n";
                            break;
                            
                        case
'password':
                            $string .= '<label>'.$element->label.':</label> <input type="password" name="'.strtolower($element->label).'">'."\r\n";
                            break;

                        case
'button':
                            $string .= '<input type="submit" name="submit" value="'.$element->label.'">'."\r\n";
                            break;
                    }
                }

                $string .= '</form>';
                    return $this->form;
    }


    public function __toString() {
        return $this->render();
    }
}

?>


De volgende stap is dat je de elementen zichzelf laat renderen. Geef Form_Element een abstracte 'render' methode en breidt deze klasse uit voor elk type inputveld (text, pw, button etc). Form#render() wordt dan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
public function render() {
    $string = '<form action="index.php" method="post">'."\r\n";
    foreach($this->_elements as $element) {
        $string .= $element->render()."\r\n";
    }

    $string .= '</form>';
    return $string;
}
 
Robert  dat ben ik

Robert dat ben ik

12/09/2011 17:44:08
Quote Anchor link
Pim - op 12/09/2011 17:28:49:


Bedankt Pim voor deze voorbeeld, ik ga er mee aan de slag
Ik zal als ie klaar is een repost doen

Rob



Toevoeging op 13/09/2011 13:43:10:

ik ben even wezen stoeien met de code maar ik kom even niet uit de abstract render methode dus heb ik de class verlengd met een extends Form_Html


Ik heb de code ondertussen naar dit aangepast:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
class Form_Html {
    protected function getHtmlElement($element) {
        $allow_elements = array('text','password','textarea','button');
        if (in_array($element->type, $allow_elements) === false) {
            throw new Exception("type:".$element->type." doesn't match the system.");
        }
else {
            if($element->type == 'text')     { return '<label>'.$element->label.'</label> <input type="text" name="'.strtolower($element->label).'">'; }
            if($element->type == 'textarea') { return '<label>'.$element->label.'</label> <textarea name="'.strtolower($element->label).'"></textarea>';  }
            if($element->type == 'password') { return '<label>'.$element->label.'</label> <input type="password" name="'.strtolower($element->label).'">'; }
            if($element->type == 'button')   { return '<input type="submit" value="'.strtolower($element->label).'">'; }
        }
    }
}

class Form_Element {
    public $type   = ''; //default
    public $label  = 'label'; //default
    
    public function __construct($type) {
        $this->type = trim($type);
        return $this;
    }

    public function setLabel($label) {
        $this->label = trim($label);
        return $this;
    }
}

class Form extends Form_Html {
    protected $_elements = array();
    public function addElements(array $elements) {
        $this->_elements += $elements;
    }

    private function render() {
        $string = '<form action="#" method="post">'."\r\n";
        foreach($this->_elements as $element) {
            $string .= $this->getHtmlElement($element)."\r\n";
        }

        $string .= '</form>'."\r\n";
        return $string;
    }

    public function draw() {
        return $this->render();
    }
}


try {
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        echo'hier komt het process';
    }
else {
        $username = new Form_Element('text');
        $username->setLabel('Username');
        
        $password = new Form_Element('password');
        $password->setLabel('Password');
        
        $button = new Form_Element('button');
        $button->setLabel('Login');
        
        $form = new Form();
        $form->addElements(array($username,$password,$button));
        echo $form->draw();
    }
}
catch (Exception $e) {
    echo $e->getMessage();
}

?>


@Pim: zou je een abstract voorbeeld kunnen geven?

Rob
Gewijzigd op 13/09/2011 13:42:25 door Robert dat ben ik
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.