

Mam taki kod - częściowo gotowy - resztę dopisałem SAM

Jest to prosty przykład zastosowania funkcji: drag'and'drop pozwalającej na przesuwanie pasków z danymi pobranymi z bazy
z możliwością ich dowolnego przemieszczania w pionie i kolejność jest natychmiast aktualizowana w bazie więc jak odpalisz kompa ponownie i wczytasz strone, będą one w tej samej kolejności jak je zostawisz.
W moim przypadku bardzo dobry sposob na usprawnienie sobie pracy. Ja jednak potrzebuję do tego dodać jeszcze dwa przyciski:
Anuluj - po kliknięciu zadanie będzie usuwane z bazy.
Zakończ - jeśli zadanie zostało wykonane w bazie zostanie dokonany wpis w polu status i przy kolejnym odczycie to pole będzie pomijane.
Mogę to zrobić bez trudu używając <form> i wysłać do serwera ale wolałbym zrobić to w JS bez przeładowywania strony. Po części sobie poradziłem ale nie tak zupełnie.
Na końcu listingu znajduje się skrypt obsługujący drag'n'drop (aktualizacja kolejności rekordów na liście (w tej chwili testuje to na zaledwie kilku ale docelowo będzie tych zadań około 80 na dzień)) oraz event on click realizujący $.post.
Przekazuje !tylko! jeden parametr mianowicie z input class="done" value="Finished" a mi do tego jeszcze potrzebny jest id wskazanego rekordu żebym mógł zapisać zmiany w bazie dla tegoż własnie.
Pytanie: Jak powinienem to zrobić ?
ten fragment skryptu muszę wzbogacić o dodatkową informację w ktorej będzie zawierał się id wysyłany do PHP dlatego pytam Was, specjalistów od jQuery i ajaxa.
... $(document).on('click', $('.done'), function(){ alert ("Chcesz zapisac zadanie jako wykonane ?"); $.post("updateDB.php",'.done', function(theResponse){ $("#prawa").html(theResponse); }); }); ...
<head> <style type="text/css"> #banner { padding:10px; top:0px; left:0px; right:0px; font-family:Verdana; font-size:36px; background-color:#F90; color:#000; } .div { box-shadow:#rgba(0,0,51,0.7) 3px 3px 4px; background: -webkit-linear-gradient(black 5%, lightblue 90%, black 5%); /* For Safari */ background: -o-linear-gradient(black 5%, lightblue 90%, black 5%); /* For Opera 11.1 to 12.0 */ background: -moz-linear-gradient(black 5%,lightblue 90%, black 5%); /* For Firefox 3.6 to 15 */ background: linear-gradient(white 15%, lightblue 100%, black 1%); /* Standard syntax */ alignment-adjust:right; vertical-align:botton; color:#035; font-family:Verdana; font-size:16px; border-collapse:collapse; border:thick; border-color:#066; height:30px; width: 550px; padding:20px 10px 10px 10px; } body { background-color:#034; color:#FF0; font-size:16px; font-family:Verdana; } #lewa { border-spacing:2px; position: absolute; top: 100px; width:700px; height: 80px; } #prawa { text-align:left; background-color: rgba(200,200,200,0.6); position: absolute; top: 110px; left: 700px; color: #F90; } td { color:#000; text-align:left; vertical-align:middle; } td:hover { color:#F00; } </style> </head> <html> <body>
// query require('includes/connection.php'); $query = "SELECT * FROM items ORDER BY kolejnosc ASC"; { if($row['status'] == 'Finished') {} else {
} }
</ul></div>
<div id="prawa" class="td" align="right" border="0" width="200" height="200" id="prawa"> Wyniki działania wyświetla w tym polu </div>
/* z użyciem jQuery generuje takie cosie: <div id="#lewa"><button name="anuluj"/> tu dane z bazy i mniejsza o zawartość <button name="zatwierdz"/> </div>
$(document).ready(function(){ $(function() { $("#lewa ul").sortable({ opacity: 0.5, cursor: 'move', update: function() { var id = $(this).sortable("serialize") + '&action=aktualizacja'; $.post("updateDB.php", id, function(theResponse){ $("#prawa").html(theResponse); }); } }); }); }); $(document).on('click', $('.done'), function(){ alert ("Chcesz zapisac zadanie jako wykonane ?"); $.post("updateDB.php",'.done', function(theResponse){ $("#prawa").html(theResponse); }); });
Acha, i jeszcze jedna sprawa. Z jakiegoś nieznanego mi powodu "onClick" działa 'po całości' gdziekolwiek klikne na stronie a nie na przycisku

Jak by ktoś mógł mi wyjaśnić tę zagadkę ?
Jeśli spowodowałem zamieszanie w kodzie wyświetlanym na stronie to przepraszam ale ponieważ jest on przeplatany co chwila są znaczniki końca jednego bloku php zaraz po nim jest JS albo znowu kawałek html i mogłem coś przeoczyć.
Pozdro