ACTUALIZADO 2012
FULL WORKING DEMO & SOURCE
obtener la posición de índice de los elementos a tratar de leer esto:
plug-in de la galleta por jQuery:
JQUERY:
$(function() {
//coockie name
var LI_POSITION = 'li_position';
$('ul#sortable').sortable({
//observe the update event...
update: function(event, ui) {
//create the array that hold the positions...
var order = [];
//loop trought each li...
$('#sortable li').each(function(e) {
//add each li position to the array...
// the +1 is for make it start from 1 instead of 0
order.push($(this).attr('id') + '=' + ($(this).index() + 1));
});
// join the array as single variable...
var positions = order.join(';')
//use the variable as you need!
alert(positions);
// $.cookie(LI_POSITION , positions , { expires: 10 });
}
});
});
HTML:
<ul id="sortable">
<li id="id_1"> Item 1 </li>
<li id="id_2"> Item 2 </li>
<li id="id_3"> Item 3 </li>
<li id="id_4"> Item 4 </li>
<li id="id_5"> Item 5 </li>
</ul>
PHP:
esto es sólo un ejemplo, pero que tuvo la idea: es posible que desee utilizar una base de datos en su lugar y use AJAX para recuperar la lis:
<?php
//check if cookie is set..
if (isset($_COOKIE['li_position'])) {
//explode the cockie by ";"...
$lis = explode(';' , $_COOKIE['li_position']);
// loop for each "id_#=#" ...
foreach ($lis as $key => $val) {
//explode each value found by "="...
$pos = explode('=' , $val);
//format the result into li...
$li .= '<li id="'.$pos[0].'" >'.$pos[1].'</li>';
}
//display it
echo $li;
// use this for delete the cookie!
// setcookie('li_position' , null);
} else {
// no cookie available display default set of lis
echo '
<li id="id_1"> Fuji </li>
<li id="id_2"> Golden </li>
<li id="id_3"> Gala </li>
<li id="id_4"> William </li>
<li id="id_5"> Jordan </li>
';
}
?>
Aparece un hilo de desbordamiento de pila interesante. Creo que el método de serialización podría llevarme a donde tengo que ir, pero no puedo juntar las piezas. – Pieter
nueva actualización! ¡Házmelo saber! –
¡Genial! Eso deja una última pregunta: ¿cómo hago que las li aparezcan en el orden correcto cuando recargo la página? ¿Puedo recuperar esta cookie con PHP? – Pieter