login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Drag AND Drop

Offline hunterx7 - 21/01/2007 18:25
Avatar van hunterx7Nieuw lid Ik zie steeds vaker websites waarbij ze het profielen systeem steeds persoonlijker maken, ik kwam laatst een site tegen daar kon je in je profiel info boxen zelf heen en weer slepen.
Dan bedoel ik niet alleen het slepen, maar als je zo'n box tussen 2 andere boxen plaatst, schuifen die uit elkaar om ruimte te maken voor die box etc.

Google heeft dit ook bij het personaliseren van je pagina.

Ik had al een keer ergens een goed script gedownload, en helemaal gemodificeert, en dit is het resultaat:

http://217.121.116.249/dragdrop/

Maar hoe kan ik ervoor zorgen dat de posities worden opgeslagen in een cookie ofzo, dat als ik op de knop opslaan druk, dat een stuk php code de cookies uitleest en de posities in de DB gooit?

31 antwoorden

Gesponsorde links
Offline Stijn - 21/01/2007 18:28
Avatar van Stijn PHP expert in een cookie opslaan , mag ik dat script eens? Ik ben daar wel in geinteresseert 
Offline Voldemort - 21/01/2007 18:29
Avatar van Voldemort PHP ver gevorderde Bij elke box een hidden field zetten met het ID/nummer van de box. Zet dit in je database per userid (bv. 2,1,3 => Box 2, dan 1, dan 3) en lees dat dan uit bij het laden van de pagina.
Offline hunterx7 - 21/01/2007 18:38
Avatar van hunterx7 Nieuw lid Kan je me een voorbeeld geven?
Je mag het script zo pakken uit de bron van mijn voorbeeld.
Zit geen php codes in, dus is helemaal compleet.
Offline Xfader - 21/01/2007 18:41
Avatar van Xfader Lid Mooi duidelijk, goed voorbeeld, ik zal hem eens gaan uitpluizen en kijken of ik het snap (ben noob in javascript nog xD) 

Bedankt.
Offline hunterx7 - 21/01/2007 18:50
Avatar van hunterx7 Nieuw lid Ik had een keer een stukje van die javascript gevonden, die helemaal gemodificeert, en daar een nette layout bij gemaakt, ik wil dus dat als je op die button daarboven klikt op opslaan, dat er positie gegevens wordt geplaatst in een DB. 
Offline Godlord - 21/01/2007 20:10
Avatar van Godlord PHP gevorderde Weet je zeker tot ie de hele broncode geeft  .

http://worldwar...agdrop.htm
Offline lemoinet - 21/01/2007 20:12
Avatar van lemoinet PHP gevorderde
Citaat:
Weet je zeker tot ie de hele broncode geeft .

http://worldwar...agdrop.htm


mss het js mee kopieren  
Offline Godlord - 21/01/2007 20:22
Avatar van Godlord PHP gevorderde dat vind ik dus niet . ...src=drag_drop.js... kan ik nie vinden 
Offline Simon - 21/01/2007 20:24
Avatar van Simon PHP expert http://217.121.116.249/dragdrop/drag_drop.js  
Offline Mad_Mike - 21/01/2007 20:29
Avatar van Mad_Mike PHP beginner offtopic:
Ziet er vet uit! Waar heb je het origineel vandaan?
Offline Godlord - 21/01/2007 20:37
Avatar van Godlord PHP gevorderde

rofl, ik had gedaan http://217.121.116.249/drag_drop.js  
Offline hunterx7 - 21/01/2007 22:52 (laatste wijziging 21/01/2007 23:03)
Avatar van hunterx7 Nieuw lid @Mad_Mike,

Het orgineel was alleen een stukje javascript.
Ik heb het helemaal omgebouwd incl. grafisch interface, ik wil het namelijk gebruiken voor een CMS.
Waar een admin dan bepaalde blokken kan aanmaken met informatie, en op een eenvoudige manier kan sorteren, maar dan moet de lokatie van de blokken wel opgeslagen worden, misschien dat als we met z'n allen hiermee klooien, komen we misschien tot een oplossing, en mag je het script gewoon gebruiken van me.

Ik zoek al weken naar een goed compleet script, toen dacht ik, laat ik het met een basic stukje zelf bouwen, maarja, dat is wel gelukt, maar opslag en data afhandeling lukt me niet echt.

@Godlord,

Als een website draait in een submap:

www.domein.ext/map/submap/index.php

En je ziet in het script:

src="blaat.js"

Dan ziet zoekt het script naar die file in dezelfde directorie als waar die pagina geladen is, in de map submap dus.

Dus dan zoek je voor dat script dus naar:

www.domein.ext/map/submap/blaat.js 

Just a hint.
Offline Berten - 21/01/2007 23:31
Avatar van Berten PHP beginner Ik denk dat het mogelijk moet zijn bij elke 'verschuiving' de positie aan te passen in de DB mbv AJAX.

Hieronder een korte gedachtegang van hoe je het misschien kan aanpakken.

We gebruiken 2 tabellen (zie * onderaan mijn post)

1 tabel genaamd: docks
met daarin:
Citaat:
ID tinyint(3) primary key
description varchar(255)


andere tabel: contents
met daarin:
Citaat:
ID int(4) primary key
dockID tinyint(3) FK naar docks.ID


==> Wanneer je een content 'dragged' en in een 'dock' dropped (een dock is hier een locatie, lees * een beetje meer naar beneden)
vervang je de dockID van die content

==> bij het opbouwen van je pagina kan je dan alle contents -die bij het dock horen dat je op dat moment gaat weergeven - uit de db halen en ze netjes plaatsen.

Dan zitten we nog met het probleem dat je de volgorde wil bepalen, dit wordt een beetje moeilijker om te doen.
We voegen een column positions toe aan 'contents' genaamd:
De nieuwe tabel wordt dan:
Citaat:
ID int(4) primary key
dockID tinyint(3) FK naar docks.ID
position int(4);


Nu, de reden dat'k deze int(4) (en dus groter dan mathematisch nodig) maak is simpel.
een kort vb om het uit te leggen.
de contents met content ID 1-4 staan in dock 2 In die volgorde.
de tabel ziet er zo uit.
Citaat:
contents
-----
ID|dockID|position
------------------
1 | 1 | 1000
2 | 1 | 2000
3 | 1 | 3000
4 | 1 | 4000


Als je nu bv blok 3 voor blok 2 wil krijgen pas je de db aan naar dit:

Citaat:
contents
-----
ID|dockID|position
------------------
1 | 1 | 1000
2 | 1 | 2000
3 | 1 | 1999
4 | 1 | 4000


Op die manier moet je niet telkens de waarde van alle andere contentposities veranderen om er eentje tussen te wurmen, het volstaat om de content die je verschuifd alleen 'van positie te veranderen'

Wat je nu dus moet doen is.
bij het laden geef je net als de divs ook steeds een hidden input field mee waarin de position staat.

Als je een stukje dragged verander je zijn hidden input field.
daarvoor zijn er 2 mogelijkheden.
Ofwel maak je de waarde 1 waarde kleiner dan de waarde die de hidden input van het veld waar hij nu bovenstaat heeft.

Ofwel maak je de waarde 1 hoger dan de waarde die de hidden input van het veld waar hij nu onderstaat heeft.

Ik hoop dat je het snapt.

zelf ben'k niet thuis in Ajax/javascript, maar als jij dat wel bent moet je met mijn gedachtegang denk'k wel iets aan kunnen vangen.

* Ik kies er voor om contents in docks te plaatsen omdat het zo mogelijk wordt verschillende docks op een pagina te hebben, bv 1 in het linker menu, en 1 in het rechter

Offline hunterx7 - 22/01/2007 14:11
Avatar van hunterx7 Nieuw lid Ik snap je gedachtegang, maar zelf ben ik ook niet goed met JS en AJAX, met AJAX heb ik totaal geen ervaring zelfs, dus nu zoek ik nog iemand die het weet te realiseren tot een werkend project.
Offline Godlord - 22/01/2007 17:21
Avatar van Godlord PHP gevorderde @hunterx7

'k had niet gezien dat het een map was , ik dacht tot het een gewone html bestand was omdat ik meestal JS en HTML bij elkaar gooi...  
Offline Mad_Mike - 22/01/2007 21:41 (laatste wijziging 22/01/2007 21:47)
Avatar van Mad_Mike PHP beginner @hunterx7
Heb momenteel echt even weinig tijd. Maar zal zodra ik wat meer tijd heb zeker hier iets moois van gaan maken en met jou en evt de rest hier delen.

edit:
Vind het trouwens beetje nutteloze actie om iedere verandering live dmv AJAX op te slaan, kan wel... maar zie het nut er niet van in. Kan best (evt dmv AJAX) door uiteindelijk op een knop te klikken

edit2 (na beter lezen):
AJAX zou evt wel mooi zijn om live de nieuwe posities te updaten van de blokken. Anders zou je idd met die grote verschillen in posities moeten werken zodat het 'altijd' past.
Zonder AJAX zou het beter zijn door de bestaande posities in een array te stoppen en dan dmv een javascript functie de nieuwe posities berekenen  
Offline hunterx7 - 22/01/2007 22:49
Avatar van hunterx7 Nieuw lid @Mad_Mike, ik hoop dat het je lukt, ik heb namelijk vrij snel een oplossing nodig .
En je hebt me dan erg blij gemaakt, en uiteraard mag je het geheel dan ook zelf gebruiken.
Offline Gerard - 23/01/2007 00:03
Avatar van Gerard Ouwe rakker Het is natuurlijk een heel "web 2.0" achtig iets, submit het eindresultaat ook maar eens in de scriptdb, weet zeker dat mensen het handig zullen vinden.
Offline hunterx7 - 23/01/2007 08:28
Avatar van hunterx7 Nieuw lid Als het script klaar is, zal ik het zeker in de ScriptDB zetten, ik ben zelf al weken op zoek naar een script met die functionaliteit, kon telkens niet vinden wat ik precies nodig had, dus ik had zelf maar een begin gemaakt, dus als iemand kan helpen om het script af te krijgen, zal ik em zeker wel delen.
Offline Mad_Mike - 23/01/2007 10:51
Avatar van Mad_Mike PHP beginner Deze week moet ik nog 2 tentamens maken / leren... En 2 projecten afronden. Daarna ben ik voor een half jaar klaar met school. Ga dan fulltime op afstudeerstage. Dan zal ik waarschijnlijk meer tijd hebben!
Hou je op de hoogte
Offline roy - 30/01/2007 23:12
Avatar van roy PHP gevorderde Hoe kunnen wij aan dit script geraken?

Offline vinTage - 30/01/2007 23:41
Avatar van vinTage Nieuw lid door 9 dagen geleden in de source te kijken van de link die gepost werd.
Offline Soebam - 30/01/2007 23:59
Avatar van Soebam HTML ver gevorderde :p Ik heb m overgenomen om later te bestuderen, als je wilt zet ik die wel even online?
Offline Godlord - 31/01/2007 13:45 (laatste wijziging 31/01/2007 22:57)
Avatar van Godlord PHP gevorderde Showoff:
http://80.61.105.238/dragdrop/

ZIP Download:
http://80.61.105.238/dragdrop/dragdrop.zip

Alstublieft. 
Offline roy - 31/01/2007 22:55
Avatar van roy PHP gevorderde helaas werkt het downloaden van de *.zip niet
Offline Godlord - 31/01/2007 22:58
Avatar van Godlord PHP gevorderde Ik was de 3 vergeten in de link nu werkt ie wel.
Offline Mad_Mike - 03/02/2007 12:52
Avatar van Mad_Mike PHP beginner dmn... wil ik net gaan beginnen met het maken van een admin systeem hiervoor. Zijn alle twee de links down. Iemand die het nog even kan hosten voor mij? Moet de bestanden nog hebben...
Offline webstab - 03/02/2007 14:00
Avatar van webstab PHP ver gevorderde Zie het originele bericht bovenaan. Dat is nog beschikbaar en dan gewoon "View Source"
Offline Mad_Mike - 03/02/2007 14:02
Avatar van Mad_Mike PHP beginner mooi werkt weer... was net dan ff tijdje down thnx!
Offline roy - 17/02/2007 17:36 (laatste wijziging 19/02/2007 08:23)
Avatar van roy PHP gevorderde Hij slaat de posities niet op in het cookkie..

Is het ook mogelijk om een array van de posities te maken en die op te slaan in een sessie?
Waarna je de array uitleest en de modules/boxen op de juiste plaats zet?

Dit zou een leuke toegevoegde waarde hebben, omdat niet iedereen cookkies accepteerd.

Ik kijk uit naar een oplossing voor dit probleem,
Met vriendelijke groeten,

Roy de Kleijn


ps. hoe zou de aanpassing voor dit script er dan uitzien?

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s