Menu volgorde veranderen

Door Robert Deiman, 15 jaar geleden, 4.590x bekeken

Ik las laatst een topic met een vraag over het wijzigen van de volgorde van menu-items uit een database. In dit scriptje kan je alleen volgorde wijzigen, maar ik ben momenteel ook bezig om een scriptje (erbij) te schrijven waarin je dan menu-items en eventueel ook submenu items kan toevoegen en bewerken.

Misschien kan onderstaaande op een veel gemakkelijkere manier, maar ik heb ervoor gekozen om het zo te doen.

Voor dit voorbeeld heb ik onderstaande tabel gebruikt, maar het is natuurlijk mogelijk dit aan te passen of uit te breiden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
CREATE TABLE `menu` (
  `id` int(4) NOT NULL auto_increment,
  `linknaam` varchar(20) NOT NULL,
  `url` varchar(50) NOT NULL,
  `nummer` int(2) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


Onderstaand script genereerd een valid XHTML 1.0 strict pagina. De CSS is niet valide, omdat die er alleen in staat om het iets overzichtelijker te maken.

Edit:

aanpassingen:
- nummer een INT veld gemaakt (was een foutje)
- foutafhandeling ingevoegd (bedankt Frank, even vergeten, krijg je als het gewoon werkt)

Gesponsorde koppelingen

PHP script bestanden

  1. menu-volgorde-veranderen

 

Er zijn 18 reacties op 'Menu volgorde veranderen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Paul K
Paul K
15 jaar geleden
 
0 +1 -0 -1
Kan je ook zorgen dat je links kan toevoegen en verwijderen???
Dan is het pas égt handig
Robert Deiman
Robert Deiman
15 jaar geleden
 
0 +1 -0 -1
@Paul

Daar staat al informatie over bovenaan bij de omschrijving. Daar ben ik nu mee bezig.
Frank -
Frank -
15 jaar geleden
 
0 +1 -0 -1
Quote:
`nummer` varchar(2) NOT NULL,
Sinds wanneer is een nummer een string? Een INT (of familie daarvan) lijkt mij hier toch voor de hand liggen.

Verder is het jammer dat je helemaal nergens controleert of de queries wel zijn gelukt, je hebt namelijk de garantie dat deze vroeg of laat kunnen mislukken. Foutafhandeling is de basis van een goed systeem en mag dus nooit ontbreken.
Robert Deiman
Robert Deiman
15 jaar geleden
 
0 +1 -0 -1
Oeps... beetje fout gedaan.. Foutafhandeling heb je ook gelijk in, ik zal dat van die int even aanpassen. Denk op het verkeerde knopje gedrukt bij het maken van de tabel.
Foutafhandeling zit erin gebakken, het werkt prima. En het is nu een integer veld geworden van dat nummer.

Edit:

Verder heb ik nog een aanpassing gedaan, zodat wanneer jullie de file opnieuw openen (dus zonder de get variabelen) dat het menu weer wordt gereset. Is gemakkelijker testen.
Jurgen B
Jurgen B
15 jaar geleden
 
0 +1 -0 -1
Klopt het dat hij dan hij niets opslaat in de database? Aangezien ik een link naar boven plaats en refresh is het weg!

Nog een foutje:
Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in /data/members/paid/r/o/robertdeiman.net/htdocs/phphulp/menu.php on line 76

http://phphulp.robertdeiman.net/menu.php?up=1&nummer=0
D B
D B
15 jaar geleden
 
0 +1 -0 -1
Jurgen ik denk dat dat hier mee te maken heeft:

edit: Verder heb ik nog een aanpassing gedaan, zodat wanneer jullie de file opnieuw openen (dus zonder de get variabelen) dat het menu weer wordt gereset. Is gemakkelijker testen.
Robert Deiman
Robert Deiman
15 jaar geleden
 
0 +1 -0 -1
@jurgen B

Hij slaat alles op in de database, alleen als het script zonder de get variabelen wordt aangeroepen, wordt het gereset.
* dit is alleen voor het testen, en staat niet in bovenstaande code!

@Turmin
Ik heb dat van die error weggewerkt, en het zou in principe ook met een array kunnen. Dit werkt gemakkelijker, en het wordt zo ook opgeslagen, zodat de menuvolgorde blijft bewaard. ;)
Rudie dirkx
rudie dirkx
15 jaar geleden
 
0 +1 -0 -1
Ik wil kopjes maken...

Main
- home
- account
- logout
- userlist

Prefs
- password
- oele
- bla

Users
- find
- report
- forum

Kan je daar niet iets moois voor maken? Moet in 1 tabel kunnen...
Robert Deiman
Robert Deiman
15 jaar geleden
 
0 +1 -0 -1
Open er een topic voor zou ik zo zeggen. Aan de hand van wat je hier boven hebt staan moet je er zelf overigens (met een beetje PHP kennis) ook gewoon uit kunnen komen.
Kumkwat Trender
Kumkwat Trender
15 jaar geleden
 
0 +1 -0 -1
Mij lijkt het me handiger met AJX (ajax)
Misschien kan je dat ook maken :D
Jelmer -
Jelmer -
15 jaar geleden
 
0 +1 -0 -1
Doe het dan meteen via Sleur & Pleur ;)

Maar ik gebruik precies dezelfde methode in een script van mij, en tot nu toe werkt het nog steeds prima. Dus deze manuer is volgens mij vrij robuust.
Robert Deiman
Robert Deiman
15 jaar geleden
 
0 +1 -0 -1
@peter
Ik kan het wel maken met AJAX, dat is niet zo'n probleem. Maar zolang het systeem erachter hetzelfde is veranderd er niet zoveel. Het enige wat veranderd is wat er visible is voor de gebruiker.

@Jelmer
Tjah, dat is het voordeel van die "oude" manieren. Het werkt vaak prima, alleen als nadeel heeft het dat het er soms wat "lomp" uitziet.
Dat "Drag en Drop" of Sleur & Pleur is ook wel mooi, ik zal die dingen eens doornemen en misschien hoor je er dan nog meer van.
Vincent
Vincent
15 jaar geleden
 
0 +1 -0 -1
Ik ckon item 4 niet bovenaan krijgen. Die bleef switschen tussen 2de en 3de positie.
Robert Deiman
Robert Deiman
15 jaar geleden
 
0 +1 -0 -1
Ligt aan jou dan.. bij mij gaat die helemaal prima naar boven hoor.. Je moet dan wel het linkje klikken wat na het vernieuwen bij item 4 komt :P
Jurgen B
Jurgen B
15 jaar geleden
 
0 +1 -0 -1
Dat ziet er goed uit! Heb je er het script voor Tommyv ?
Robert Deiman
Robert Deiman
15 jaar geleden
 
0 +1 -0 -1
@Jurgen

In de bron van die pagina vind je het javascript. Het enige nadeel van zulke methodes vind ik dat het met JavaScript is. Ik probeer dat zelf het liefs zoveel mogelijk te vermijden, omdat het kan worden uitgezet. (al is het maar de vraag of je dat wil als je een administratiepagina beheerd)
Het voordeel is wel dat het gemakkelijk en intuitief werkt. Tjah, het is maar net wat de voorkeur heeft.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Nicky
nicky
13 jaar geleden
 
0 +1 -0 -1
Hey mooi script alleen er is een punt waar hij niet mee om kan gaan. Als je straks een script hebt, om ook paginas te maken en te verwijderen heb je een probleem. Omdat zodra je een rij verwijdert uit je database hij het niet meer zal doen omdat je nummering dan niet meer klopt omdat er geen -1 of +1 meer is.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. menu-volgorde-veranderen

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.