geen submenu

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP developer (Laravel/Vue.js)

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Senior Cobol Applicatieontwikkelaar

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving In de applicatie ETM

Bekijk vacature »

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

Software Programmeur PHP

Functie Ben jij op zoek naar een nieuwe uitdaging als PHP developer en zoek je een leuke platte organisatie? Lees dan snel verder! Voor een opdrachtgever in omgeving Capelle aan den IJssel dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; 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 met de business. Hier ga je werken In een team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Senior Front end developer Digital Agency

Functie Jij als Front end developer komt te werken in een van de 8 multidisciplinaire teams binnen de organisatie. Deze teams werken op basis van Scrum agile in 2 wekelijkse sprints. De grootte van de teams varieert van 9-14 collega’s en bestaan altijd uit één of meerdere project managers en een project manager. Samen met je team werk je aan verschillende projecten voor uiteenlopende klanten zoals grote multinationals tot het kleine mkb. De stack waarmee gewerkt wordt is voornamelijk Javascript, ES6, Es.next, HTML, CSS, React.js en Node.js. Wat deze organisatie onderscheid is dat ze echt langdurige partnerships aangaan met hun

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 »

C# developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als C# Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the Year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Senior Java developer

Als Senior Developer bij Sogeti ben je onderdeel van onze toonaangevende best-gecertificeerde Java community. Deze bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Aval en de Nationale Politie. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We

Bekijk vacature »

Trainee pega developer

Wil jij een mooie stap maken in jouw carrière? Mooi! Bij De Mandemakers Groep haal je binnen 6 maanden je CSA- en CSSA-certificaten, waarna jij aan de slag kan als Pega-developer in ons IT-team. Achter de schermen zorg jij ervoor dat collega’s efficiënt werken en klanten iedere dag beter geholpen worden. Wil jij daaraan bijdragen? En jouw ICT-skills ontwikkelen? Lees dan snel verder en solliciteer vandaag nog als trainee Pega-developer. Wat ga je doen? Als trainee Pega developer leiden wij je op tot gecertificeerd software developer voor het low-code platform PegaSystems. In de training ben je verantwoordelijk voor een te

Bekijk vacature »

PHP Programmeur

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda, ontwikkel je als PHP programmeur niet alleen webapplicaties, maar ben je verder ook gefocust op het constant inspelen op nieuwe innovaties m.b.t software ontwikkeling. Naast het ontwikkelen van webapplicaties, bouwt deze toffe werkgever ook webshops en websites voor hun opdrachtgevers. Wat ga je doen? Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het ontwerpen en implementeren van webapplicaties met het Symfony framework; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden en updaten van bestaande applicaties die

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Pagina: « vorige 1 2

Frits van Leeuwen

Frits van Leeuwen

06/02/2020 20:19:03
Quote Anchor link
Zo zo.... dat is nog eens een uitleg.
Ik heb inderdaad alles al in de juiste volgorde staan. Dat doe ik door het veld 'menu_sub_van' te gebruiken om aan te geven onder welk menu hij hoort, en 'menu_waarde' bepaal ik de hoogte in het menu. De items die het hoofdmenu vormen, hebben bij 'menu_sub_van' de waarde 0.
Als er een submenu is, vul ik daar de waarde in die bij de hoofdmenu-items bij 'menu_waarde' is ingevuld.

Door ORDER BY te gebruiken, levert de query alles in de juiste volgorde aan. Het blijft natuurlijk wel dat de data die ik in geef, goed moet worden ingegeven. Anders staat het menu door elkaar. Maar dat heeft verder niets met de werking van de code te maken.

Mijn probleem zit hem in het vullen van de array.

Misschien daarna nog wel meer, maar dat durf ik nu niet te zeggen. Ik dank dat het dan wel gaat lukken.
Want als het goed is zou bij een op de juiste manier gevulde array, de code moeten werken.
 
PHP hulp

PHP hulp

26/04/2024 07:34:57
 
- Ariën  -
Beheerder

- Ariën -

06/02/2020 20:48:35
Quote Anchor link
Over welke array heb je het, waar je op vast loopt?
 
Thomas van den Heuvel

Thomas van den Heuvel

06/02/2020 20:56:53
Quote Anchor link
Heb je voorbeeld even aangepast, het volgende zou moeten werken. Je overschreef trouwens elke stap van de loop $myItems, dus dat ging sowieso niet werken :p.

Dit zou in grote lijnen moeten werken, hierbij bouw ik rechtstreeks de boom, zonder "myItems" in een apart array te zetten:
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
<?php
$query
=
    "SELECT menu_id, menu_tekst, menu_waarde, menu_sub_van, menu_link, menu_reg_date
    FROM tabel_menu
    ORDER BY menu_sub_van, menu_waarde"
;

$result = mysqli_query($connect, $query);

// NB dit is automatisch het element op index 0, het root-element, je zou dit ook expliciet kunnen doen met 0 => array(...)
$myTree = array(
    array(
        'data'     => 'root',
        'parent'   => false, // of NULL, of wat dan ook, de root heeft geen parent
        'children' => array(),
    ),
);


while ($row = mysqli_fetch_assoc($result)) {
    // maak het huidige tree-item aan
    $myTree[$row['menu_id']] = array(
        'parent'   => $row['menu_sub_van'], // niet echt nodig om toe te voegen, maar kan handig zijn
        'data'     => $row['menu_tekst'],
        'children' => array(), // initialiseer children als leeg array
    );

    // voeg het huidige item toe als child van de parent :)
    // de query zou door de sorteervolgorde moeten garanderen dat het parent-element - $myTree[$row['menu_sub_van']] - reeds bestaat

    $myTree[$row['menu_sub_van']]['children'][] = $row['menu_id'];
}


// de rest als voorheen
?>

Overigens, als de parent (menu_sub_van) NULL is, wat mogelijk handig kan zijn als je een relationele database hebt en een foreign key wilt maken die naar zichzelf (dezelfde tabel) wijst, dan zou je deze om moeten zetten naar 0 ingeval het het root-element betreft (of wat je voor index voor het root-element gekozen hebt - ook dit kun je vangen in een variabele zodat je dit maar op 1 plaats hoeft aan te passen), dus zoiets voor alle code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$parent
= ($row['menu_sub_van'] === NULL ? 0 : $row['menu_sub_van']);
?>

En vervolgens refereer je overal aan de parent via $parent in plaats van $row['menu_sub_van']. Dit werk mogelijk ook beter voor de leesbaarheid.

Ten overvloede:
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
<?php
$rootId
= 0; // definieer deze variabele op 1 plek zodat je deze ook maar op 1 plaats hoeft aan te passen

$myTree = array(
    $rootId => array(
        'data'     => 'root',
        'parent'   => NULL,
        'children' => array(),
    ),
);


while ($row = mysqli_fetch_assoc($result)) {
    $parent = ($row['menu_sub_van'] === NULL ? $rootId : $row['menu_sub_van']);
    $myTree[$row['menu_id']] = array(
        'parent'   => $parent,
        'data'     => $row['menu_tekst'],
        'children' => array(),
    );


    $myTree[$parent]['children'][] = $row['menu_id'];
}

?>


En weer op eenzelfde wijze zou je $row['menu_id'] kunnen vangen in een variabele $currentId ofzo.

Deze regel wordt dan ook meteen (nog) beter leesbaar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$myTree
[$parent]['children'][] = $currentId;
?>

En dat illustreert weer het belang van een goede naamgeving voor (en de introductie van hulp)variabelen.
Gewijzigd op 06/02/2020 21:12:35 door Thomas van den Heuvel
 
Frits van Leeuwen

Frits van Leeuwen

08/02/2020 16:16:00
Quote Anchor link
Het is gelukt.
Ik heb het een en ander aangepast en wat gevogeld.
Eerder leerde ik dat PHP en HTML code zo veel mogelijk gescheiden dient te worden. Dus beginnen met PHP en daarna de HTML met een minimum aan PHP code. Dus die les heb ik goed onthouden en hier verwerkt.
Allemaal erg bedankt voor deze nieuwe lessen.

De code hier onder, is de uiteindelijke code. Het werkt.

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
<?php     // *** menu ****
$query =
    "SELECT menu_id, menu_tekst, menu_waarde, menu_sub_van, menu_link, menu_reg_date
    FROM tabel_menu
    ORDER BY menu_sub_van, menu_waarde"
;

$result = mysqli_query($connect, $query);

// NB dit is automatisch het element op index 0, het root-element, je zou dit ook expliciet kunnen doen met 0 => array(...)
$rootId = 0; // definieer deze variabele op 1 plek zodat je deze ook maar op 1 plaats hoeft aan te passen

$myTree = array(
    $rootId => array(
        'data'     => 'root',
        'parent'   => NULL,
        'link' => NULL,
        'children' => array(),
    ),
);


while ($row = mysqli_fetch_assoc($result)) {
    $parent = ($row['menu_sub_van'] === NULL ? $rootId : $row['menu_sub_van']);
    // maak het huidige tree-item aan
    $myTree[$row['menu_waarde']] = array(
        'parent'    => $parent, // niet echt nodig om toe te voegen, maar kan handig zijn
        'data'        => $row['menu_tekst'],
        'link'         => $row['menu_link'],
        'children' => array(), // initialiseer children als leeg array
    );

    // voeg het huidige item toe als child van de parent :)
    // de query zou door de sorteervolgorde moeten garanderen dat het parent-element - $myTree[$row['menu_sub_van']] - reeds bestaat

    $myTree[$parent]['children'][] = $row['menu_waarde'];
}


// weergavefunctie
function displayTree($tree, $index)
{

    if ($index == 0) {
        echo "<ul class='art-hmenu'>";
    }

    else
    {
        echo "<ul>";
    }

    
    foreach ($tree[$index]['children'] as $child)
    {

        echo "<li><a href='".$tree[$child]['link']."'>".$tree[$child]['data']."</a>";
        if (count($tree[$child]['children']) > 0)
        {

            displayTree($tree, $child);
        }

        echo "</li>";
    }

    echo "</ul>";
}

?>


<nav class="art-nav">
    <?php
        // weergave
        if (count($myTree) > 0)
        {

                displayTree($myTree,0);
        }
    
    ?>

</nav>
Gewijzigd op 08/02/2020 16:31:42 door Frits van Leeuwen
 
- Ariën  -
Beheerder

- Ariën -

08/02/2020 16:34:18
Quote Anchor link
Fijn dat het werkt. Al zou ik liever in de databasestructuur logische benaming gebruiken als ParentID, om in het stramien van je script te blijven. ;-)
 

Pagina: « vorige 1 2



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.