Database update middels action="#" Hoe werkt dat?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Developer / Amsterdam / Financiële om

Functieomschrijving Ben jij een senior C# .NET Developer en wil jij een bijdrage leveren aan een grote Noord-Europese financiële organisatie door innovatieve features te implementeren? Wil jij werken met C# en krijg jij energie van requirements uit de business vertalen naar concrete mogelijkheden? Lees dan nu verder! Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen

Bekijk vacature »

C# PHP Python Ontwikkelaar

Are you ready to take the next great step in your career? Are you ready to join a global, dynamic world-class team? Are you looking for a job where you are fully responsible for developing advanced solutions that drive value to the business? Are you ready to work at the core of our processes and have the freedom to bring great initiatives to the table? Are you ready to build the future of our company? If you are a dynamic, highly motivated, energetic and friendly individual with a strong background in technology, we're looking for you! If you feel comfortable

Bekijk vacature »

Noordoost Java Developer vacature

Java Developer Noordoost Word onderdeel van een topteam met ervaren Java Developers. Loop voorop in de ontwikkelingen en help mee innoveren. Focus op Java Wij bouwen State of the Art applicaties met de nieuwste Java technologie en frameworks. Dit doen we door ons te richten op de open source-oplossingen binnen de wereld van Java, alle nieuwe ontwikkelingen te volgen en onze kennis te delen binnen onze eigen Java Community. Dit betekent bijvoorbeeld dat we aanwezig zijn op veel conferenties; Oracle Code One, Devoxx en JFall. We organiseren ook onze eigen collegiale sessies en hackatons waar we kennis en plezier combineren.

Bekijk vacature »

Senior Front-end Developer vacature

Jij weet wat er nodig is. Jouw hart gaat sneller kloppen van techniek. Jij wil vooruit. Ben jij de Front-end Developer die we zoeken? Je bent creatief, thuis in gebruikersinteractie en een gedreven engineer in hart en nieren. Daarnaast heb jij een klantgerichte en proactieve houding. Precies de kwaliteiten die een Front-end Developer nodig heeft. Wat doe je als Developer? Als Front-end Developer werk je aan de technische realisatie van front-end (web)applicaties in de verschillende uitdagende opdrachten voor Sogeti’s klanten. Dit kan zowel op klantlocatie zijn, als binnen het Center of Excellence van Sogeti. Jij houdt van het uitdenken en

Bekijk vacature »

Noordoost Java Developer vacature

Java Developer Noordoost Word onderdeel van een topteam met ervaren Java Developers. Loop voorop in de ontwikkelingen en help mee innoveren. Focus op Java Wij bouwen State of the Art applicaties met de nieuwste Java technologie en frameworks. Dit doen we door ons te richten op de open source-oplossingen binnen de wereld van Java, alle nieuwe ontwikkelingen te volgen en onze kennis te delen binnen onze eigen Java Community. Dit betekent bijvoorbeeld dat we aanwezig zijn op veel conferenties; Oracle Code One, Devoxx en JFall. We organiseren ook onze eigen collegiale sessies en hackatons waar we kennis en plezier combineren.

Bekijk vacature »

PHP in de gezondheidszorg! Bij unieke organisatie!

php, developer, amersfoort Functieomschrijving We zoeken een Medior of Senior PHP developer die interesse heeft om met Zend framework aan de slag te gaan. De PHP applicaties communiceren met hardware in afgelegen gebieden over de hele wereld en ze monitoren de kwaliteit. Jouw input is hierbij zeer wenselijk en hierin krijg jij straks als developer een grote stem bij dit bedrijf. Met het OV zijn ze goed aan te reizen en ook parkeren nabij het kantoor is geen probleem. Functie-eisen - HBO of WO werk en denk niveau - Ruime PHP ervaring - Kennis en ervaring van Zend framework of

Bekijk vacature »

Senior Lead Developer / Full stack / .NET / Azure

Functieomschrijving Wil jij graag als meewerkend voorman werken in een ambitieus bedrijf dat moderne software ontwikkelt voor grote klanten? Ben jij goed thuis in .NET omgevingen en het Azure platform en zorg je graag dat alles in goede banen loopt? Lees dan snel verder! Ontwikkelen en testen van de software en het framework via Scrum principes; Dagelijks aansturen van het Development Team; Coördineren van projecten; Kwaliteitscontrole op de code; Architectuur bepalen en zorgen dat deze gevolgd wordt; Overzicht over functioneel en technisch ontwerp van de software; Sparren met directie over IT strategieën. Functie-eisen Ruime ervaring met het .NET framework, ASP.NET,

Bekijk vacature »

PHP met minimaal 6 maanden werkervaring

Functieomschrijving Ter uitbreiding is mijn klant op zoek naar een PHP ontwikkelaar die betrokken wordt bij de bouw van innovatieve software, voor zowel grote alsmede kleine klanten. Je komt te werken binnen een team van enthousiaste collega's waarmee je samen aan gave projecten gaat werken. De sfeer is hier informeel en open, net als de source! Ze werken hier met verschillende frameworks binnen PHP. Hiebij kun je denken aan; Zend , Symfony, YII, Laravel of Codelgniter. Daarnaast zoeken ze iemand die ook graag met systeembeheer aan de slag gaat. Dit zullen ze je bij deze organisatie gewoon aanleren. Het is

Bekijk vacature »

Senior .NET Developer voor innovatieve marktleider

Functieomschrijving Jij en de 10 a 15 andere Ontwikkelaars werken samen op Agile wijze aan het verder uitbouwen en het verbeteren van de applicatie. Naast de 'hoofdapplicatie' zijn er nog een heleboel kleinere modules omheen. Ook deze moeten allemaal onderhouden en verder uitgebouwd worden. Je werkzaamheden zijn dus heel divers; de ene dag bouw je een volledige nieuwe module, de andere dag fix je bugs en weer een andere dag Wekelijks wordt er een duidelijke planning opgesteld waarin de doelen voor die week worden vastgelegd. Elke ochtend is er een standup waarin de voortgang besproken wordt. Uiteraard wordt dit ook

Bekijk vacature »

Front-end Developer / React / Innovatie / Finance

Front-end Developer / React / Innovatie / Finance Functieomschrijving Ben jij een Front-end Developer met ongeveer 3 jaar ervaring en wil jij aan de slag bij een van de grootste en meest gerenommeerde financiële organisatie wereldwijd? Wil jij je richten op projecten waar je van scratch af aan inhouse de meest innovatieve oplossingen gaat bedenken en uitvoeren met o.a. React en Node.js voor digitale oplossingen (op bijvoorbeeld het gebied van Machine Learning en Artificial Intelligence) voor gerenommeerde organisaties? Lees dan nu verder! Het ontwikkelen van de front-end van fully responsive webapplicaties en webdesign met uiteenlopende tools en technieken, o.a. React,

Bekijk vacature »

Functioneel applicatiebeheerder e-learning

GGZ Ecademy is een initiatief van en voor ggz-instellingen die samenwerken bij scholing van (toekomstige) zorgprofessionals in de geestelijke gezondheidszorg. Kernactiviteiten zijn het ontwikkelen van (e-learning) leerproducten, het faciliteren van leertechnologie en kennisdeling. Het initiatief is in 2011 gestart. Op dit moment is GGZ Ecademy een coöperatieve vereniging met meer dan 80 leden. Het gaat daarbij om instellingen uit de ggz, verslavingszorg, forensische zorg, RIBW, SGLVG, KJP en onderwijsinstellingen. Activiteiten worden (met inzet van externe leveranciers en inhoudsdeskundigen uit deelnemende instellingen) aangestuurd door een team van 12 medewerkers. Vanwege de groei in het aantal te ondersteunen leden is er de

Bekijk vacature »

IT Developer (Freelancer)

In this role you will work as part of the wider Supply Chain Finance Services (SCFS) organization at Unilever. At SCFS we aim to “create value through continuous global impact on the financial results of Unilever” and we live a strong purpose “inspired to make an impact”. We work in a dynamic environment with significant change in ways of working resulting from continuous improvement projects, automated/robotised solutions, data driven insights. With our ambitious digital agenda at SCFS, we are focusing on different aspect. Creating backend solutions to fully automated end-2-end processes. But also working on frontend applications to help colleagues

Bekijk vacature »

Search & Navigation Engineer

Vacancy: Search & Navigation Engineer Looking to work in an international company with more than 35 different nationalities where collaboration and innovative ideas are key to drive future success? Seeking a role where you can add value and have the opportunity to develop and grow? Office Depot Europe has an exciting opportunity for a Search & Navigation Engineer to join our European headquarters in Venlo, the Netherlands. The role is a fulltime, permanent position offering an excellent salary and benefits package. Your role as a Search & Navigation Engineer As the Search & Navigation Engineer you provide tactical and / or operational guidance

Bekijk vacature »

Junioren/Medioren/Senioren Backend PHP developers

Functieomschrijving In de functie van Backend PHP developer werk je veel met Symfony en Drupal. In een team van developers werk je samen aan applicaties, websites en apps om samen een fantastisch eindproduct af te leveren. Kwaliteit staat hier voorop dus met een klant die tevreden is zijn ze niet tevreden. De klant moet de wow-factor ervaren en het gevoel hebben dat hier ware kunst is afgeleverd. Een meesterwerk waar de meeste bureaus nog wat van kunnen leren. De projecten variëren van 2 weken tot een half jaar dus dat maakt elke project verschillend in vele opzichten. Heb jij kennis

Bekijk vacature »

C# .NET ontwikkelaar gezocht, detachering (Azure,

Ben je een .NET ontwikkelaar en op zoek naar afwisseling in de regio Rotterdam? Bij een innovatief bedrijf met mogelijkheden om te groeien in zowel functie als kennis? Waar je geen nummer bent maar er aandacht is voor jou als persoon? Wellicht dat deze organisatie je dit kan bieden. Voor een detacheerder in Rotterdam zijn we namelijk op zoek naar gepassioneerde .NET ontwikkelaars. Het bedrijf heeft een regionale werkwijze waarbij ze een aantal vestigingen in Nederland hebben waaronder de hoofdvestiging in Rotterdam. Er werken momenteel circa 80 mensen. Het bedrijf is met name sterk in CRM maatwerk oplossingen en de

Bekijk vacature »
Jan Kila

Jan Kila

04/02/2020 20:12:50
Quote Anchor link
Het form in mijn code is als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<form method='post' action="#">
    <div class="form-group">
        <label for="title">Title</label>
        <input type="text"
               class="form-control"
               id="title"
               placeholder="Enter a title"
               name="title">
    </div>
   <button type="submit" class="btn btn-primary">Submit</button>
</form>

Iets ingekort zodat het leesbaar blijft.

Het action=“#” attribuut stuurt de inhoud van de input tags terug naar deze pagina. Dat is wat ik vind op internet. Maar ook wordt op een magische manier een method aangeroepen die de database update! Hoe gebeurt dat?

Op SO lees ik dit:
The # tag lets you send your data to the same file. I see it as a three step process:
Query a DB to populate a from
Allow the user to change data in the form
Resubmit the data to the DB via the php script
With the method='#' you can do all of this in the same file.
After the submit query is executed the page will reload with the updated data from the DB. Dat is precies wat er gebeurt: maar Hoe werkt dat, c.q. hoe kan het werken?

In punt 3: wat is the php script? Hoe kan het “systeem” weten welk php script te gebruiken?
 
PHP hulp

PHP hulp

09/04/2020 12:23:58
 
- Ariën -
Beheerder

- Ariën -

04/02/2020 20:22:41
Quote Anchor link
Er zit ongetwijfeld een JavaScript achter die getriggerd wordt aan de hand van een element.
 
Jan Kila

Jan Kila

04/02/2020 23:02:55
Quote Anchor link
Dit is de volledige code voor de betreffende pagina.
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
<form method='post' action="#">
    <div class="form-group">
        <label for="title">Title</label>
        <input type="text"
               class="form-control"
               id="title"
               placeholder="Enter a title"
               name="title">
    </div>

    <div class="form-group">
        <label for="description">Description</label>
        <input type="text"
               class="form-control"
               id="description"
               placeholder="Enter a description"
               name="description">
    </div>
    <button type="submit" class="btn btn-primary">Submit</button>
</form>

Voor zover ik zie: geen javascript te bekennen.
Met de hand op m'n hart garandeer ik je dat "iemand" het betreffende record in de database aanmaakt.
In de output is dat ook te zien.
Maar hoe het werkt; graag zou ik dat weten.

O ja,
Er zit helemaal geen javascript in het hele project.
Gewijzigd op 04/02/2020 23:08:29 door Jan Kila
 
- Ariën -
Beheerder

- Ariën -

04/02/2020 23:07:52
Quote Anchor link
Kijk eens in de netwerk-tab van je browser om te zien waar die request op plaatsvindt.
Gewijzigd op 04/02/2020 23:08:50 door - Ariën -
 
Jan Kila

Jan Kila

04/02/2020 23:27:04
Quote Anchor link
Behalve dat index.php wordt uitgevoerd, geeft dat geen bruikbare informatie
 
- Ariën -
Beheerder

- Ariën -

04/02/2020 23:36:35
Quote Anchor link
Dan moet het uitvoerende script in index.php zitten. Of je ziet iets over het hoofd.
 
Jan Kila

Jan Kila

04/02/2020 23:53:09
Quote Anchor link
Raadsel opgelost.
De taskController bevat onder meer de volgende functie:
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
   function create()
    {
        //echo '<p>tasksController function create()</p>';
        if (isset($_POST["title"]))
        {
            require ROOT.'Models/Task.php';
            $task= new Task();
            if ($task->create($_POST["title"], $_POST["description"]))
            {
                //echo '<p>tasksController function create() in de if</p>';
                header("Location: " . WEBROOT . "tasks/index");
            }
        }
        $this->render("create");
    }

Het overzicht van taken bevat de knop: "Add new task". Een druk op deze knop stuurt me naar het form Create - zie voorgaande code van het form. Een nieuw leeg form heeft ook een lege $_POST[] dus de functie create() voert alleen de functie render() uit en toont het lege form.
Heb ik gegevens ingevuld en op de Submit knop gedrukt dan is $_POST[] gevuld. Nu voert de functie create() wel de code uit die de database update.
Het was even zoeken maar ook dit is weer helder.
Blijft nog een vraag - is dit nu een "normale" manier van werken?
 
- Ariën -
Beheerder

- Ariën -

05/02/2020 00:00:26
Quote Anchor link
In de MVC-wereld ziet het er logisch uit. Ik zou dan wel een exit(); na je header zetten.
 
Thomas van den Heuvel

Thomas van den Heuvel

05/02/2020 00:19:18
Quote Anchor link
Oef.

Okay, wederom, dit werkt, maar al die haken en ogen :p.

Allereerst, het nagaan of iets wordt gePOST zou je idealiter moeten controleren met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // do stuff
}
?>

En niet met behulp van een controle die checkt op een specifieke veldnaam. Wat nu als het formulier inhoudelijk wordt aangepast en de veldnamen anders gaan heten of komen te vervallen? Dat kan dan potentieel het schakelen naar een "verwerkmodus" breken.

Dan de aloude header-val. Een header('Location: ...') redirect je pas aan het einde van alle PHP-code / de response naar de nieuwe locatie. Dus wat er achtereenvolgens gebeurt indien je een POST doet:
- het if-statement levert true op en de Task wordt gecreëerd
- de header wordt ingesteld
de pagina wordt gerenderd ($this->render('create') wordt gewoon uitgevoerd)
- je wordt geredirect naar de nieuwe locatie

Normaal gesproken zet je na een header('Location: ...') altijd een exit-statement zodat je ook direct dan en daar wordt geredirect, en er verder geen code meer wordt uitgevoerd. Het aanwezig zijn of ontbreken kan het verschil tussen een veilige en onveilige applicatie betekenen. Als het je doel is om te redirecten kun je hier beter een (helper) methode van maken waarin je ook een HTTP-code kunt instellen en die tevens een exit-statement toevoegt zodat je dit nooit meer vergeet.

Daarnaast, het produceren van output in combinatie met headers kan op zijn beurt weer oorzaak zijn van een compleet nieuw scala aan foutmeldingen :/.

Geen idee of dit de normale manier van werken is. Ik zou zeggen dat het bovenstaande twee acties zijn die zijn samengenomen. Een die een formulier toont, en een die het formulier verwerkt. Misschien is het dan ook logischer om dit te scheiden in een /new (of /add of wat dan ook) en een /process actie? Als je alles een beetje extrapoleert van hoe classes en methoden werken (deze (classes) hebben vaak een specifieke toepassing en (methoden) omvatten vaak één specifieke taak) dan zou mij dat logischer klinken.

Maar ja, dit project snijdt wel meer bochten af :).
Gewijzigd op 05/02/2020 00:21:31 door Thomas van den Heuvel
 
Jan Kila

Jan Kila

05/02/2020 15:03:04
Quote Anchor link
@Thomas,
Bedank voor je bedenkingen, dat maakt dat ik me een beetje goed voel bij m'n kritische houding ten opzichte van 'zaken die van internet komen'.
Het is op zich geweldig dat we tegenwoordig zoveel zaken kunnen vinden, maar er zit ook veel 'vuil' tussen; en wanneer je zoals ik iets nieuws oppak dan is het niet altijd direct duidelijk wat het 'vuil' is. Maar met schade en schande...
Ik heb nog zo'n tut gevonden: https://www.youtube.com/watch?v=Aw28-krO7ZM&list=PL7A20112CF84B2229&index=1

Ook als opstapje best wel aardig, maar uit 2011 en dan begin ik al wat bedenkingen te krijgen.
Is er misschien een 'koninklijke weg' zodat ik niet door al dat 'vuil' behoef te ploegen?
Een boek, een youtube tut of een artikel serie; iets wat meer state of the art is.

O ja, ik bedoel 'vuil' niet eens negatief. In elke ontwikkeling zit een element van 'toegenomen inzicht' waardoor eerdere zaken, producten, meningen, overtuigingen, etc. ineens in een ander licht komen te staan.
Gewijzigd op 05/02/2020 15:05:48 door Jan Kila
 
Thomas van den Heuvel

Thomas van den Heuvel

05/02/2020 17:44:20
Quote Anchor link
Jan Kila op 05/02/2020 15:03:04:
Is er misschien een 'koninklijke weg' zodat ik niet door al dat 'vuil' behoef te ploegen?

De enige weg hierlangs is erdoor denk ik :p. En op een gegeven moment heb je voldoende bagage om dit soort dingen op waarde te schatten. Misschien is dit ook de enige manier, ik bedoel, iedereen kan zijn/haar mening geven over hoe iets zou moeten, maar het is beter om zelf bij conclusies te arriveren. Tegelijkertijd zijn er 1001 manieren om hetzelfe doel te bereiken, er is geen beste oplossing.

Het verraderlijke van al die zooi op internet is dat zulke tutorials vaak niet overduidelijk slecht zijn, wat dat betreft richt een baggertutorial met een professionele presentatie meer schade aan dan andersom :).

Het heeft ook geen zin om dat soort tutorials (youtube) in een comment structureel te ontmantelen want vaak voelen de auteurs zich dan beledigd wat meestal uitmondt in het verwijderen van een reactie. Je kunt enkel met lede ogen aanzien hoe mensen zulke tutorials de hemel inprijzen en die poep als zoete koek opvreten :p.
 
- Ariën -
Beheerder

- Ariën -

14/02/2020 09:07:25
Quote Anchor link
Edit:
Onnodige bericht verwijderd. Deze kan in een nieuw topic.
 



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.