ugrás a tartalomhoz

AJAX YUI drag and drop

Castor87 · 2008. Júl. 6. (V), 18.32
Üdv!

A yahoo ajax könyvtárral ismerkedem, azon belül a drag & drop funkcióval. Arra szeretném használni, hogy adatbázisból kilistázok valamennyi rekordot egy sorrendező mező alapján és ezzel az ajaxos megoldással szeretném ha módosítható lenne a rekordok sorrendje. Csak arra nem jöttem még rá, hogy a mozgatás hatására hogy tudok olyan php kódot lefuttatni, ami megváltoztatja a sorrendet az adatbázisban.
 
1

endDrag eseményben

Csorba Norbert · 2008. Júl. 6. (V), 20.54
Feltételezem a következő példát használod kiindulási alapnak: Drag and Drop List Ordering (Mindössze annyi különbséggel nagyjából, hogy 1 db listát használsz a fentivel szemben és a lista dinamikusan áll elő.)
Az adatbázistáblában minden rekordhoz hozzárendelsz egy "sorszam" tulajdonságot is, mely a sorrendet határozza meg és kiíratásnal a "sorszam" szerint növekvő sorrendbe jeleníted meg a rekordokat (ami itt pl. 1,2,3) és ez lesz a sorok azonosítója (kiegészítve a lil_ előtaggal a példában):

<div class="workarea">
  <h3>List 1</h3>
  <ul id="ul1" class="draglist">
    <li class="list1" id="li1_1">list 1, item 1</li>
    <li class="list1" id="li1_2">list 1, item 2</li>
    <li class="list1" id="li1_3">list 1, item 3</li>
  </ul>
</div>
A korábban linkelt drag&drop példába beszúrhatod a saját műveleteidet az események hatására meghívott függvényekbe. Pl. neked az

endDrag: function(o) {
	// kód ....
},
részbe kell, mivel akkor szeretnéd menteni az új sorrendet, ha vége a rendezésnek (endDrag).
Ebben a függvényben javascripttel lekérdezed az új sorrendet (ul1 azonosítójú elem gyerek elemeinek azonosítóit), amit ajaxszal továbbítasz a feldolgozó php fájlnak, ami az adatbázist frissíti.
Még kliens oldalon a lil_ előtagot kiszűröd az azonsoítókból, így csak a számokat továbbítod. Tehát 1,2,3 volt az eredeti sorrend és ha megcserélted az utolsó kettőt, akkor a feldolgozó az 1,3,2-t kapja meg.
2

php kód futtatása

Castor87 · 2008. Júl. 29. (K), 00.09
Köszönöm a szájbarágós válaszod. Két dolgot nem tudok még:
A javascriptes endDrag részben hogy tudok php kódot beszúrni, vagy egy php fájlt lefuttatni?
Másik pedig hogy tudom lekérni js-be az új sorrendet és ajaxal átadni phpnek?