Ciao sto usando scripaculous per creare una lista ordinabile
tutto ok per quanto riguarda il js.
ma quando vado a salvare i dati nel dabatabse non ci riesco.
Sto usando una funzione per estrarre i dati che mi servono ( da mostrare ) dal database
ed un'altra per estrarre gli id dei record estratti e metterli in un'array.
un UL con id announce_list contiene dei li con id announce_ID
poi con javascript dovrei passare il nuovo ordine come array ad una pagina php che salva il nuovo ordine nel database.
<script type="text/javascript">
function updateOrder(){
var options = {
method : 'post',
parameters : Sortable.serialize('announce_list')
};
new Ajax.Request('process.php', options);
}
Sortable.create('announce_list', { onUpdate : updateOrder });
</script>
questo è il JS che gestisce la lista
funzione per il return dell'array con gli ID :
function getAnnounceList($page, $limit){
$currentPage = $page * $limit;
$limitPage = $limit;
$query = "SELECT `anid` FROM `sm_announces` ORDER BY `rank` DESC LIMIT " . $currentPage . "," . $limitPage;
$exec = mysql_query($query);
while($row = mysql_fetch_object($exec)){
$announces[$row->anid] = 0;
}
return $announces;
}
funzione per il salvataggio chiamata come callback dello spostamento dei LI
function updateOrder($page,$key){
if (!isset($_POST[$key]) || !is_array($_POST[$key]))
return;
$announces = $this->getAnnounceList($page, 4);
$queries = array();
$ranking = 1;
foreach ($_POST[$key] as $anid) {
if (!array_key_exists($anid, $announces))
continue;
$query = sprintf('UPDATE sm_announces SET rank=%d WHERE anid=%d',
$ranking,
$anid);
mysql_query($query);
$ranking++;
}
}
in pratica il JS invia ( almeno dovrebbe inviare ) la richiesta ad una pagina che provvederà a fare questo :
$sm->updateOrder(1,'announce_list');
ma a quanto pare non salva nulla nel database
sapete aiutarmi?
:bye: