[Mysql, PHP & CMS] Menuvolgorde bepalen

Pagina: 1
Acties:

  • BKJ
  • Registratie: April 2000
  • Laatst online: 16-04 16:06
Ik ben een CMS aan het maken in PHP die een site gaat beheren met een bepaald menu.
Nu wil ik graag dat de user het menu zo kan editten dan de volgorde van de verschillende items door hem zijn te bepalen.

Het zou eventueel handig zijn in de database een extra kolom kunnen maken met bv order en daarop sorteren. Vraag is alleen hoe kun je dat zo userfriendly maken?

Ik dacht aan een soort textbox met daarin de verschillende items met daarnaast twee knoppen: omhoog en omlaag. Zodra je dus een item aanklikt en op de knop omhoog drukt gaat deze omhoog en wisselt hij van plek met degene boven hem. Moet dit met javascript?

Na de submit lees je de tekstbox uit en zet je opnieuw de order.

Hoe maak ik dit? Is er een multiple selection box icm javascript die dit kan?

Kamer huren


  • Jig
  • Registratie: Mei 2003
  • Laatst online: 25-03 09:22

Jig

Je kan met JS volgens mij de inhoud van een <select> box veranderen. Als je een size meegeeft word et een soort listbox kwam ik pas achter, dus dat is fijn. Zo kun je dus realtime de order veranderen. Ik weet niet hoe et met submitten zit, of die dat wel pakt.
Als dit niet realtime werkt dan kan je met gewone submit doen. Dat ie dan de order verandert. Je geeft dus elk item ook een nummer mee als value zodat je daarop kan sorteren via php.

Verwijderd

Je kunt je structuur ook tonen dmv een boomstructuur met een enkel niveau. Je kan dan move up en move down heel snel doen, dmv een extra priority column (of order maar ik vermijd liever sql commando's als column names)

Afbeeldingslocatie: http://www.mschopman.demon.nl/cms.gif

  • Jig
  • Registratie: Mei 2003
  • Laatst online: 25-03 09:22

Jig

Eh? Wat is dat voor screenshot, van een of andere PHP WYSIWYG editor ofzo?

  • BKJ
  • Registratie: April 2000
  • Laatst online: 16-04 16:06
Toch nog ff doorgezocht en misschien nuttig om hier te melden:

http://www.thecodeproject.com/jscript/iliasorter.asp

Kamer huren


Verwijderd

Jig schreef op maandag 20 december 2004 @ 22:50:
Eh? Wat is dat voor screenshot, van een of andere PHP WYSIWYG editor ofzo?
Nee van een hobby project. Hitchhacker, ziet er toch prima uit? Kun je in ieder geval mee uit de voeten.

  • Maarten21
  • Registratie: Juli 2003
  • Laatst online: 11-05 11:58
Wat dacht je van een pijltje omhoog en een pijltje omlaag naast het item ,als je de items onder elkaar in rijen laat zien.

Klik je op zo'n pijltje (bijvoorbeeld omlaag), verwissel je de 'order_id' van dat veld met de 'order_id' van het veld daaronder...

  • Noork
  • Registratie: Juni 2001
  • Niet online
Afbeeldingslocatie: http://img97.exs.cx/img97/3219/Image519.th.jpg

De html:
Ik zou het erg fijn vinden als je ook enige uitleg van je code zou willen posten i.p.v. hier alleen de code te dumpen.
Daarnaast zitten we nu wel heel erg aan de javascript kan wat bij de buren in W&G thuishoort :)

P&W -> W&G

[ Voor 126% gewijzigd door Creepy op 21-12-2004 09:14 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Humpf... doe ik een edit i.p.v. quote. Sorry! Volgens mij heb ik koffie nodig ;)

Dit stond er dus:
De html:
code:
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
<script type="text/javascript" language="JavaScript"> 
function move(index,to) { 
var list = document.form.list; 
var total = list.options.length-1; 
if (index == -1) return false; 
if (to == +1 && index == total) return false; 
if (to == -1 && index == 0) return false; 
var items = new Array; 
var values = new Array; 
for (i = total; i >= 0; i--) { 
items[i] = list.options[i].text; 
values[i] = list.options[i].value; 
} 
for (i = total; i >= 0; i--) { 
if (index == i) { 
list.options[i + to] = new Option(items[i],values[i + to], 0, 1); 
list.options[i] = new Option(items[i + to], values[i]); 
i--; 
} 
else { 
list.options[i] = new Option(items[i], values[i]); 
} 
} 
list.focus(); 
} 
function submitForm() { 
var list = document.form.list; 
var theList = "?"; 
for (i = 0; i <= list.options.length-1; i++) { 
theList += "list" + list.options[i].value + "=" + list.options[i].text; 
if (i != list.options.length-1) theList += "&";  } 
location.href = document.form.action + theList; 
} </script> 

<form method="get" action="verandervolgorde.php" name="form"> 
<select name="list"> 
<option value="1">The Company</option> 
<option value="2">Products</option> 
</select>

<input type="button" value="Up" onClick="move(this.form.list.selectedIndex,-1)">
<input type="button" value="Down" 
onClick="move(this.form.list.selectedIndex,+1)"> 
<input type="button" value="Save" onClick="submitForm()"> 
</form>

[ Voor 91% gewijzigd door Creepy op 21-12-2004 09:16 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Noork
  • Registratie: Juni 2001
  • Niet online
Tja ik denk dat het wel voor zichzelf spreekt. Een html formulier met daarop 1 selectlist om de menuitems in te zetten. 1 knop voor omhoog, 1 voor omlaag en 1 om het formulier te submitten.

Aan de omhoog en omlaag knoppen zitten javascript functions. Deze vangen de index van de selectlist op en verhogen of verlagen deze met 1.

Het submitevent vangt de inhoudt van de seletbox en stuurt deze door naar een andere pagina in de vorm van een "get".
Pagina: 1