• User Newbie

    [jQuery] ui portlet position

    Ciao a tutti!
    Ho un problema con jquery ui portlet.
    Diciamo che funziona tutto e riesco a salvare su db mysql la posizione delle div, ma non so come caricare la loro posizione al caricamento della pagina, e quindi ad ogni refresh le portlet tornano nella loro posizione naturale ossia quella del codice html.
    Suggerimenti?

    intanto posto un po di codice

    
    $("#contenitore-centrale .column").sortable({
    connectWith: [ '#contenitore-centrale .column' ],
    handle: '.portlet-header',
    opacity: 0.6,
    items: '> .portlet',
    tolerance: 'pointer',
    revert: true,
    distance: 2,
    helper: 'clone',
    update: function() {
    }, 
    
    stop: function(event, ui) {
    
    var postVars = {
    action: 'portlet-order',
    }
    
    $("#contenitore-centrale .column").each(function(){
    var $posizione = $(this).sortable('serialize');
    var $column_id = $(this).attr('id');
    postVars["order[" + this.id.split('-')[0] + "]"] = $(this).sortable( 'toArray' ).join(',');
    });
    
    $.post("code/posizione.php", postVars , function(theResponse){
    $("#results").html(theResponse);
    });
    
    } 
    
    });
    
    $(".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").enableSelection();
    
    
    ```Ciao e grazie!

  • Moderatore

    Uhm, non ho capito bene cosa devi fare ma non ti basta fare i dovuti spostamenti nel metodo $(document).ready() ?


  • User Newbie

    Allora io ho creato delle div che sono spostabili,
    secondo l'ordine naturale di default ciò che visualizzo è
    div1 posizione1 colonna1
    div2 posizione2 colonna1
    div3 posizione1 colonna2
    div4 posizione2 colonna2

    L'utente può spostare come meglio crede le div e il mio intento è quello di memorizzare su un database la posizione delle div in modo che al prossimo accesso, o refresh, le div si dispongano secondo l'ordine salvato nel database.

    Per scrivere nel db sono ok, tramite post, come ho scritto nel messaggio precedente, quello che non riesco e non so come fare è leggere dal db e ordinare le div secondo l'ordine salvato.

    Spero di essere stato piu chiaro.
    Grazie ancora.
    Ciao!


  • Moderatore

    Ah ok, allora dovrebbe bastare scrivere il codice al volo con php ordinando i div nella posizione desiderata dopo averli caricati dal database.


  • User Newbie

    Si come ragionamento non fa una piega!!!
    quello che salvo nel db è passato tramite "serialize" quindi ho una cosa del genere

    Array ( [ordine_portlet] => a:2:{s:8:"column_1";s:39:"portlet_1,portlet_4,portlet_2,portlet_3";s:8:"column_2";s:0:"";} )

    il problema è ricavare l'ordine dagli array delle posizioni e poi popolare dinamicamente il contenuto delle div che non è archiviato nel db, quindi a logica dovrebbe esserci di mezzo un "append"...
    Ci ho provato in diversi modi ma niente...spero che qualcuno con piu esperienza possa aiutarmi a venirne fuori.
    Ringrazio