karis
11.07.2009, 13:37:54
Cze,
Na jakiej zasadzie można wykonać podobnie jak ma Wordpress do zarządzania panelami (widgetami), że jak się przeciągnie na daną pozycję to tam się potem zapisuje automatycznie pozycja.
Wiem, że to mozna wykonac w ajaxie, tylko nie wiem jak to ugryźć
Mam taki skrypt
http://www.dhtmlgoodies.com/scripts/drag-d...rag-drop-2.htmlno i nie wiem jak tu mozna zrobic aby zapisywało pozycje.
Samą obsługę ajaxa znam, wiem jak wysłąć dane do skryptu, tylko nie wiem jaki to jest uchwyt dla pozycji.
Proszę mi to jakos wyjaśnić
piotrooo89
11.07.2009, 13:39:45
zapisywanie widgetu w bazie danych, później przy renderowaniu strony pobiera pozycje widgeta i tam go wyświetla.
karis
11.07.2009, 13:41:11
no wow, odkryłeś ameryke! tyle to nawet początkujący w php wie
przeczytaj dokładnie opis mojego problemu
fander
11.07.2009, 14:39:40
offsetTop, offsetLeft
karis
11.07.2009, 20:19:47
może mi ktoś dokładniej wytłumaczyć?
f1xer
11.07.2009, 20:34:12
no i po co się denerwować, kolega wyraźnie i zwięźle napisał rozwiązanie twojego problemu. Znasz ajaxa tak? umiesz wysłać zapytanie tak? więc w momencie jak coś zostanie puszczone nad kontenerem to wysyłasz zapytanie zapisania do bazy i już masz w bazie info o tym że coś gdzieś jest. Dalej jak strona się wczytuje to pobierasz te dane z bazy i renderujesz wygląd strony. A więcej szczegółów bez znajomości ani skryptu ani bazy to się raczej nie poda. I skoro podałeś przykład WP to zawsze możesz zaglądnąć do jego kodu źródłowego.
karis
11.07.2009, 21:29:29
dobra, ale co jest uchwytem informującym o pozycji?
vokiel
11.07.2009, 21:32:54
Co do pozycji to wystarczy informacja o kolejności w danym kontenerze
karis
11.07.2009, 22:07:33
Jak taką informacje umieścić?
piotrooo89
11.07.2009, 22:20:55
jak jak? normalnie. masz kilka div'ów w których masz warunek i zależnie od niego ładujesz danego widgeta. np jeśli w divie pierwszym masz kalendarz to sprawdzasz czy id pluginu zgadza się z id danego diva jak tak wyświetlasz.
ps.
Cytat
przeczytaj dokładnie opis mojego problemu
przeczytałem dokładnie i dałem Ci odpowiedź.
i
Cytat
no wow, odkryłeś ameryke!
czemu na mnie krzyczysz?
karis
11.07.2009, 22:26:04
aha czyli robiuć to na takiej zasadzie:
<div id="1"></div> - ZAPYTANIE: SELECT `id` FROM `panele` WHERE `pozycja`=1
<div id="2"></div> - ZAPYTANIE: SELECT `id` FROM `panele` WHERE `pozycja`=2
<div id="3"></div> - ZAPYTANIE: SELECT `id` FROM `panele` WHERE `pozycja`=3
<div id="4"></div> - ZAPYTANIE: SELECT `id` FROM `panele` WHERE `pozycja`=4
<div id="5"></div> - ZAPYTANIE: SELECT `id` FROM `panele` WHERE `pozycja`=5
<div id="6"></div> - ZAPYTANIE: SELECT `id` FROM `panele` WHERE `pozycja`=6
nie krzycze na ciebie
f1xer
11.07.2009, 23:02:49
tak dokładnie tak jak napisałeś, z zapisywaniem jest tak samo tylko sobie wstawiasz rekord do bazy danych informujący o tym na której pozycji jest dany widget
karis
11.07.2009, 23:11:36
no dobra ale jak ugryźć to że po przesunięciu zapisze nową pozycje, co tu bedzie zawuerało wskaźnij pozycji? o to mi cały czas chodzi
f1xer
11.07.2009, 23:19:00
no to zależy jak napiszesz skrypt, napisz go tak żebyś wiedział do jakiego elementu co zostało wrzucone i wtedy będziesz miał np. dwa divy (1 - id=kontener 2-id=box1) i jak box1 zostanie przeciagniety do kontenera to se zapiszesz to w bazie ze box1(czyli nasz widget) został zapisany w pozycji kontener) możesz też sprawdzać sobię kolejność elementów w kontenerze i dopisywac do bazy ze np. box1 jest 3 elementem w pozycji kontener
karis
11.07.2009, 23:26:18
ale to jest mało elastyczne
nie znasz jakiego elastyczniejszego sposobu?
f1xer
11.07.2009, 23:30:10
ale co jest mało elastyczne? mi się wydaje dość elastycznym rozwiązaniem możesz określić co w tym jest mało elastycznego?
karis
11.07.2009, 23:33:49
wg mnie bedzie troche ciężko z tymi divami, spróbuję troche pokombinować.
jeśli ktoś ma inne rozwiązanie to badzo proszę się podzielić ze mną
vokiel
12.07.2009, 13:57:53
Masz określone pola, w które możesz przeciągnąć boxy.
Masz sobie boksy które możesz przeciągać. Każdy box ma odpowiednik w bazie BOX (ID, ID_POLA, KOLEJNOSC) -> na potrzeby przykładu.
1. Przesuniecie boxa
- w obrębie kontenera - update kolejnosc set nowa kolejnosc
- przeniesienie do innego kontenera - update id_pola set nowe_id
2. Wyswietlanie
- kontener na boxy 1 - select from box where id_pola =1
- kontener na boxy 2 - select from box where id_pola =2
itd...
karis
14.07.2009, 16:38:13
znalazłem coś takiego
http://jqueryui.com/demos/sortable/#portletschcę wykonać funkcje alert dla zdarzenia update
oto mój kod:
Kod
<script type="text/javascript">
$(function() {
$(".column").sortable({
connectWith: '.column'
update: function(event, ui) { alert('kupa'); }
});
$(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all")
.find(".portlet-header")
.addClass("ui-widget-header ui-corner-all")
.prepend('<span class="ui-icon ui-icon-plusthick"></span>')
.end()
.find(".portlet-content");
$(".portlet-header .ui-icon").click(function() {
$(this).toggleClass("ui-icon-minusthick");
$(this).parents(".portlet:first").find(".portlet-content").toggle();
});
$(".column").disableSelection();
});
</script>
i po tym nie działa. w ogóle nie chcą się przenosić
możesz mi napisać jak to poprawie zrobic?
erix
14.07.2009, 16:39:36
Najpierw sobie zobacz, co jest w konsoli błędów.
Bo błąd jest typowo składniowy.
karis
14.07.2009, 16:55:18
no już sprawdziłem
Błąd: missing } after property list
Plik źródłowy: file:///C:/Users/xxxx/Desktop/sortowanie/demos/sortable/portlets.html
Wiersz: 23, Kolumna: 3
Kod źródłowy:
update: function(event, ui) { alert('kupa'); }}
no wstawiam tą klamrę za i nadal nie działa.
gdzie ta klamra powinna sie znaleźć?
erix
14.07.2009, 17:51:13
Nie chodzi o klamrę.
Poczytaj o składni JSON. I niech ktoś mu pokaże paluchem, w którym to miejscu, to otrzyma tytuł debila dnia.
karis
14.07.2009, 20:57:11
no czytałem i nadal nie moge sobie z tym poradzić
zlitujcie się i powiedzcie gdzie mam błąd, po cholere jest to forum skoro tutaj same pyszałki są
f1xer
14.07.2009, 21:31:18
Forum jest dla programistów, albo chcesz się nauczyć programować, albo kopiować. Jeżeli jeszcze raz przeczytasz o JSON to na pewno wpadniesz na pomysł o co chodzi. Zrozum że lepiej zmuszać do myślenia niż podawać rozwiązania na tacy tym bardziej że tak jak napisano to błąd składniowy
http://pl.wikipedia.org/wiki/JSON przejrzyj sobie dokładnie tą stronę zobacz przykład struktury, następnie popatrz na swój kod i pomyśl. Na prawdę warto pomęczyć się trochę w poszukiwaniu błędu już nigdy więcej go nie popełnisz

.
karis
14.07.2009, 23:34:59
haha
wpadłem już

brakowało przecinka po pierwszym atrybucie ^^
a jaki macie pomysł, by zapisać aktualną pozycję oraz nazwę kontentera do którego się przeciągneło dany div? chodzi mi o uchwyt, bo ajaxa znam i umiem zapisac dane
erix
15.07.2009, 00:01:42
Najpierw się zbluzgało użytkowników, teraz pytamy?
Cytat
a jaki macie pomysł, by zapisać aktualną pozycję oraz nazwę kontentera do którego się przeciągneło dany div?
To znaczy? Nie widzę jakoś problemu?
karis
15.07.2009, 13:22:28
chciałbym, miec jakis wskaźnik w jakiejś zmiennej z nazwą kontenera, d ktorego przeciągnełą się element oraz zzmienę z pozycją np 1, 2, 3, 4, 5
jak to zrobic?
erix
15.07.2009, 13:24:28
Masz przecież metody parent() i index().
karis
15.07.2009, 20:22:55
dobra, ale jak to użyć? parent() to chyba bedzie wskazywał rodzica elementu czyli kontener, do którego zostanie przeniesiony, a co z pozycją? jak to opracować?
erix
15.07.2009, 20:35:06
Napisałem: index().
karis
15.07.2009, 20:38:10
dobra, ale jak to użyć, bo nie mogę się dokopac do teego w dokumentacji
erix
15.07.2009, 21:04:00
karis
15.07.2009, 23:57:30
dzięki

ale cos tu nie gra
http://katmia.home.pl/public_html/sortowan...e/portlets.htmlzobacz sam
dziwnie te pozycje wyswietla
jak zrobic zeby bylo dobrze?
erix
16.07.2009, 10:22:41
Kod
var index = $("div").index
Dziwisz się, skoro pobierasz pozycję względem wszystkich divów na stronie, a nie tylko widgetów? [;
karis
17.07.2009, 20:35:53
no ale jak wpisuje zamiast div np .portlet to wtedy pokazuje mi w alercie -1 bez przerwy
erix
17.07.2009, 20:47:54
Pokaż lepiej cały plik.
Używałem index nieraz i wystarczy tylko uważnie skonstruować całe wyrażenie (zmienną z listą) oraz użyć index na odpowiednim obiekcie. Ale wszystko jest w dokumentacji.
karis
18.07.2009, 10:43:22
oto cały plik
http://wklej.to/mfuMpomoże ktoś?
erix
18.07.2009, 11:12:23
I co po całym pliku?
Dostałeś na tacy wskazówki, jeszcze Ci mało?
karis
18.07.2009, 14:52:46
Cytat
Pokaż lepiej cały plik.
no to ci pokazałem nie rozumiem o co ci chodzi
pomozesz mi czy nie?
kombinowałem z tym indeksem dla różnych divów, ale w większości zawsze wracana jest pozycja -1, 0 lub 2
erix
18.07.2009, 16:28:55
Przecież cały czas pomagam... ;/
Pokaż, jak kombinowałeś - gotowca ode mnie nie dostaniesz.
karis
19.07.2009, 09:53:34
kombinowałem tak jak w przykładach tutaj
http://docs.jquery.com/Core/indexdodawałem zamiast #foobar .portlet oraz .columnt zmieniałem tylko nnazwe selektora.
no i jak robiłem z tych przukładów to wyświetlało tylko 13 albo 14 niezależxnie, który dic przeciągnę
tam wyżej podałem całą zawartość mojego pliku.
erix
19.07.2009, 22:23:33
Kombinowałeś, ale napisałem - musisz dać zmienną, która przechowuje wszystkie interesujące Cię divy (ale nie wszystkie na stronie!) i w ramach tej zmiennej używaj index.
karis
20.07.2009, 09:19:04
nie wiem czy ja dobrze robie czy jestem juz glupi ze nie rozumiem co sie do mnie mowi.
no zobacz wstawiam klasę .portlet i jej przypisuję metodę indeks
wstawiałem również ._column, oraz .column oraz .column2 no i lipa
jakbyś to zrobił?
erix
20.07.2009, 11:11:34
Ech, widzę że bez jakiegoś przykładu się nie obejdzie...
Kod
var stos = $('div.widgety');
stos.click(function(){
alert(stos.index(this));
});
Ten kod po kliknięciu pokazuje, który index ma element względem kolekcji. I zrób analogicznie u siebie.
karis
20.07.2009, 22:53:15
ehhhh ;/
no Twoje rozwiązanie działa, nie powiem, że nie, ale tylko jak zrobie tak, ze przypisze osobne zdarzenie click na kazdego elemtnyu
po kliknięciu tylko na kazdy widget zrwaca mi pozycje
http://katmia.home.pl/public_html/sortowan...e/portlets.htmlale po przeciągnieciu cały czas zwraca -1
erix
20.07.2009, 22:58:30
Zdarzenie update, a nie stop...
karis
21.07.2009, 18:48:31
Ale to nic nie daje
Wręcz przeciwnie, pojawiają mi się 2 alerty zamiast jednego
jak to skonstruować?
erix, powiesz mi, czy jesteś taki cienki bolek??
erix
21.07.2009, 20:27:36
Nie powiem Ci wprost, a już na pewno nie z takimi odzywkami.
Męcz się Ty - masz zlecenie - jest odpowiedni dział. Dostałeś już tyle wskazówek, że dałbyś radę sam zrobić, gdybyś się trochę wysilił.
karis
21.07.2009, 23:46:49
męczę się i nie mogę
pomóż w końcu po to jest to forum
webdice
22.07.2009, 08:50:22
Cytat(karis @ 21.07.2009, 19:48:31 )

(...) erix, powiesz mi, czy jesteś taki cienki bolek??
Uważaj z takimi odzywkami.
Cytat(karis @ 22.07.2009, 00:46:49 )

(...) pomóż w końcu po to jest to forum
Przystopuj człowieku, wymagać sobie możesz od rodziców jak Cię tak rozpieścili. To że piszesz na forum publicznym
NIE znaczy że ktoś będzie za Ciebie pracował.
Pomoc dostałeś i przestań zachowywać się jak rozpieszczony bachor.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.