[php] menuvolgorde wijzigen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb een tabel links die de volgende velden bevat:

code:
1
2
3
4
5
6
7
id | tekst | link
-------------------
1  | link1 | index.php
2  | link2 | pagina.php
3  | link3 | gastenboek.php
4  | link4 | fotos.php
5  | link5 | contact.php

Tot zover geen probleem, nu wil ik echter de mogenlijkheid bieden om de linkvolgorde aan te passen, dit kan ik doen door een extra kolom aan te maken met een 'gewicht' van de bijbehorende link, bijv:

code:
1
2
3
4
5
6
7
id | tekst | link           | weight
------------------------------------
1  | link1 | index.php      | 5
2  | link2 | pagina.php     | 3 
3  | link3 | gastenboek.php | 2
4  | link4 | fotos.php      | 4
5  | link5 | contact.php    | 1

Vervolgens kan ik sorteren op 'weight' en heb ik de links in de gewenste volgorde staan. Nu komt mijn probleem: het lukt me niet om een pagina te maken waarmee ik de kolom 'weight' kan veranderen. Het is dus de bedoeling dat het volgende wordt weergegeven:

code:
1
2
3
4
5
link1   move up / move down
link2   move up / move down
link3   move up / move down
link4   move up / move down
link5   move up / move down

wanneer ik dan bevoorbeeld bij link 2 op 'move up' klik, moet het volgende verschijnen.

code:
1
2
3
4
5
link2   move up / move down (weight is veranderd van 2 naar 1)
link1   move up / move down (weight is veranders van 1 naar 2)
link3   move up / move down
link4   move up / move down
link5   move up / move down

Heeft iemand enig idee hoe ik dit kan bereiken???

ps... is een beetje lang verhaal geworden, maar wel redelijk duidelijk hoop ik :)

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:06

gorgi_19

Kruimeltjes zijn weer op :9

Niet nummeren van 1,2,3,4,5 maar 1,3,5,7,9
Op deze manier past er altijd eentje tussen. Vervolgens ga je na een update de boel 'opnieuw' sorteren in de volgorde 1,3,5,7,9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Die kan ik niet helemaal volgen. Ik ben eigenlijk op zoek naar een scriptje dat wanneer ik van een rij de waarde 'weight' met 1 vermeerder, automatisch de daaropvolgende rij met 1 verminderd wordt.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:06

gorgi_19

Kruimeltjes zijn weer op :9

Puur kant en klare scripts ga ik niet geven en het vragen hiernaar wordt ook niet gewaardeerd. Zie hiervoor onder andere ook de FAQ van PW.
De theorie kan ik wel uitleggen:

Stel je maakt er dit van:
code:
1
2
3
4
5
6
7
id | tekst | link           | weight
------------------------------------
1  | link1 | index.php      | 9
2  | link2 | pagina.php     | 5
3  | link3 | gastenboek.php | 3
4  | link4 | fotos.php      | 7
5  | link5 | contact.php    | 1

En vervolgens wil je contact na gastenboek en voor pagina hebben....
Je kan hem er vervolgens inzetten op nummer vier.
Vervolgens draai je een updatequery, welke de weights weer handhaaft (1,3,5,7,9)

[ Voor 4% gewijzigd door gorgi_19 op 23-11-2002 00:52 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oke, bedankt, maar dan moet ik wel handmatig de kolom 'weight' invoeren, dit gaat niet via een knopje lukken...

Ik heb net het volgende heldere idee gekregen, misschien ook een optie, maar absoluut niet volledig...

code:
1
2
3
4
5
6
7
id | tekst | link           | weight
------------------------------------
1  | link1 | index.php      | 1
2  | link2 | pagina.php     | 2 
3  | link3 | gastenboek.php | 3
4  | link4 | fotos.php      | 4
5  | link5 | contact.php    | 5

Als ik bij link1 op 'move down' klik, moet ie het getal 'weight' veranderen naar: (hoogste waarde van weight) + 1 ... in dit geval dus 5 + 1 = 6

Dan heb ik in ieder geval al het volgende bereikt:

code:
1
2
3
4
5
6
7
id | tekst | link           | weight
------------------------------------
2  | link2 | pagina.php     | 2 
3  | link3 | gastenboek.php | 3
4  | link4 | fotos.php      | 4
5  | link5 | contact.php    | 5
1  | link1 | index.php      | 6

Da's al een begin, met een beetje gestuntel krijg ik de links zo wel op de goede plaats (op deze manier kan ik 'move up' wel vergeten... toevoegingen of andere ideeen zijn welkom, want dit is natuurlijk niet helemaal de simpelste oplossing...

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:06

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 23 november 2002 @ 01:03:
oke, bedankt, maar dan moet ik wel handmatig de kolom 'weight' invoeren, dit gaat niet via een knopje lukken...
Waarom niet?
Ieder veldje heeft een weight... (In dit geval bijvoorbeeld 3). Wil je hem eentje omhoog zetten, dan trek je er drie van af. Moet hij eentje lager, dan tel je er drie bij up.

Dit kan je regelen door middel van 2 buttons.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hé... 't al laat, je hebt helemaal gelijk, kun je me alleen een korte uitleg geven van de updatequery functie?? of welke functies ik op php.net moet doorspitten om 't zelf uit te zoeken?

iig ontzettend bedankt, ik denk dat ik vanacht weer goed kan slapen ;)

PS... ik wil 't script echt graag zelf schrijven, maar ben een beginner, en heb wel een beetje sturing nodig...

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

ervan uitgaande dat je mysql gebruikt: UPDATE Syntax

Acties:
  • 0 Henk 'm!

  • dbakker
  • Registratie: September 2002
  • Laatst online: 14-06-2024
Ik denk dat het zelfs nog veel makkelijker (en gebruiksvriendelijker) kan dmv een javascript. Met javascript bouw je gewoon een script waarmee de volgorde veranderd kan worden, en pas na de submit opdracht ga je alle items updaten.

Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
phpfreaky schreef op 23 november 2002 @ 10:15:
Ik denk dat het zelfs nog veel makkelijker (en gebruiksvriendelijker) kan dmv een javascript. Met javascript bouw je gewoon een script waarmee de volgorde veranderd kan worden, en pas na de submit opdracht ga je alle items updaten.
precies wat ik ook wou posten :)

je maakt gewoon een paar readonly input boxjes maar daarin de waardes hoe ze nu staan, dan twee knoppen met + en -
Daarmee kunnen ze de volgorde wijzigen
Een submit knop
Sturen naar een php file, daar ff checken of er geen dubbele waardes zijn
anders ff een foutmelding retourneren
anders gewoon opslaan :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt

Pagina: 1