• User Attivo

    No, 😉 il fatto è che non funziona come puoi anche vedere tu qui h**p://zomer.altervista.org/blog/drag_drop/mysql/sposta_blocchi.php
    😢😢 allora visto che che non funziona e lo devo modificare volevo anche perferzionarlo, perchè nel databse per ogni utente mi fa un "milione" di righe...


  • User Attivo

    Ciao,
    guarda che a me ha funzionato tutto tranne l'eliminazione.
    Ma questo perchè ho provato su uno dei 3 div creati di default.

    Prova a caricare la pagina senza quei tre div, perchè non hanno l'id da passare alla funzione javascript rimuovi.

    Se passi il mouse sulla X vedrai nella status-bar che richiamano rimuovi(,);
    e quindi non fa niente.

    Ma se utilizzo i div creati cliccando su titolo1, titolo2 ecc... mi pare che funziona tutto.

    Che browser stai usando? Io utilizzo FF3.5.

    Ciao


  • User Attivo

    Allora ora ti spiego tutto qui tre div di default non li ho fatti io sono usciti da se, poi quello che non funziona è propio il salvataggio! Facci caso, metti qualche div in una posizione ad esempio fai la prima riga 1,2,3 e poi chiudi la pagina, logicamnte ora la posizione dei div si avrebbe dovuto salvare nel db? ma se riapri la pagina ritovi di nuvo quei div di default...⭕o:o

    P.s. ho il tuo stesso broswer...


  • User Attivo

    Scusa,
    ma l'aggeggio serve a far si che un utente personalizzi la propria home page,
    oppure è uno strumento di amministrazione per facilitare la costruzione di un layout?

    In entrambi i casi avrebbe bisogno di salvare un riferimento alla singola utenza. Come potrebbe mai capire quando carico la pagina che sono lo stesso che la ha chiusa un minuto prima o 10 giorni prima?

    Lavora con i cookies?

    Ciao


  • User Attivo

    No vabè quello e una cosa tutta basata sul mysql e id ma se non riconosce quello di 10 secondi prima...cioè io salvo i dati nel db non capisco dove sbaglio....


  • User Attivo

    Ciao,
    cosa salvi nel db per capire che utente ha richiesto la pagina?

    Un id, la session_id, l'indirizzo ip: sicuramente visto che non c'è login qualcosa dovrai prendere in considerazione!:bho:

    :mmm: Ciao


  • User Attivo

    Ok, ti racconto tutto, io voglio permettere ad ogni mio untete di poter creare una propia pagina personale per questo ho deciso di inseirire dei drag e drop ( per renderla aconra più personalizzabile ) comunque il mio sito si puoi definire un social network COME facebook ma non uguale, perchè stiamo cercado di "di cucire un abito intorno ad gli utneti e non di costruire un abito per vendorlo ad gli utenti" ovviamente anche noi avremo i nostri guadagni e abbiamo già pensato a delle strategie per far popolare la nostra creazione, ora ti spiego tutto quando un utente si registra ( e attiva il suo account ) con mkdir viene creata un cartella con il nome dell'utente, alll'interno di essa con fwrite creiamo una pagina ( index.php ) di con un layout di base, questa pagina sarà la prima pagina del blog succesivamente l'utente entrato nella home page ( dove può cercare, amici, creare gruppi, album fotografici, ecc ) inizia la sua creazione del blog con dei form html ( nel salvataggio dei dati nel database, viene memorizzato l''id utente è un id blog) succesivamnte confronto l'id blog con l'id blog corrispondente al nikname se i due id combaciano compare un link, modifica blog l'utente ci clicca e viene mandato alla apgina di ammministrazione dove ci sono gli script per il drag e drop (con il javascript mentre nella pagina pubblica senza java) e modifica i blocchi poi faccio una query con un where dove c'è una variabile qualsiasi es: titolo trova l'array delle tabelle e le sistema.

    Però io prima di fare tutto questo casino volevo fare delle semplici prove, che come hai visto tu non fungono.
    Ora mi pare che non ti devo dire più niente 😄 (lo so che non hai capito niente)... Mi potresti aiutare?


  • User Attivo

    Buona giornata Zomer,
    mi sorge il dubbio che il motivo per cui non ti funziona correttamente è
    proprio che attualmente non 'leghi' i dati del DB con la sessione utente (blog_id),
    e quindi ogni utente che prova è sempre diverso:
    non trovando nessun legame tra i dati salvati delle personalizzazioni e l'utente che le esegue ogni volta il sistema ripresenta la pagina di default con i 3 div vuoti.

    Potrebbe essere così?

    Ciao


  • User Attivo

    Non ho cpaito bene cosa vuoi dire, comunque ora lo script lo sto testando solo io, non è online quindi l'unico utente sono io, mi dovrebbe riconoscere:?


  • User Attivo

    Io non conosco lo script,
    ma potrebbe anche essere che non ti riconosca.

    Prendi per esempio questa situazione:
    se lo script associa i salvataggi ad una session_id allora ogni volta che chiudi e riapri il browser richiedi una nuova sessione utente e quindi potrebbe non riconoscerti.

    Devi capire bene come funzione lo script,
    altrimenti ti limiterai a perder molto tempo per fare solo dei tentativi.

    Buon appetito.


  • User Attivo

    Ma io ho già un idea, so già come deve funzionare tutto il fatto è perchè non funziona? Perchè mi crea 3 box?


  • User Attivo

    Ciao,
    prova a togliere l'attributo onload da qui:
    [PHP]<body onload="rendisortable()"> [/PHP]

    Ciao


  • User Attivo

    Ho modificato quello che mi hai detto tu con <body> ma, non funge, le tabelle non si spostano più. ❌x❌x❌x


  • User Attivo

    Ciao,
    ce la faremo?

    Ho notato che quando crei la pagina nel <body> ci sono 3 <div class="colonna">con dentro altri elementi.

    Siccome il menu lo dichiari prima,
    non è che sono quelli che ti fregano?

    Ciao


  • User Attivo

    No ma ho trovato una cosa interessante lo stesso script però la versione con salvataggio a cookie ecco qui la parte interessata

    [php]
    if(!isset($_COOKIE['cookie_colonna1']) && !isset($_COOKIE['cookie_colonna2']) && !isset($_COOKIE['cookie_colonna3'])){
    setcookie ( "cookie_colonna1","1,2,3",time()+2592000);
    setcookie ( "cookie_colonna2","4,5,6",time()+2592000);
    setcookie ( "cookie_colonna3","7,8,9",time()+2592000);
    $array_colonna1=array(1,2,3);
    $array_colonna2=array(4,5,6);
    $array_colonna3=array(7,8,9);
    }else{
    if(isset($_COOKIE['cookie_colonna1'])){
    $array_colonna1=explode(",",$_COOKIE['cookie_colonna1']);
    }else{
    $array_colonna1=Array();
    }
    if(isset($_COOKIE['cookie_colonna2'])){
    $array_colonna2=explode(",",$_COOKIE['cookie_colonna2']);
    }else{
    $array_colonna2=Array();
    }
    if(isset($_COOKIE['cookie_colonna3'])){
    $array_colonna3=explode(",",$_COOKIE['cookie_colonna3']);
    }else{
    $array_colonna3=Array();
    }
    }
    [/php]

    Io non ne capisco molto ma a te che te ne pare?


  • User Attivo

    Ciao Zomer,
    mi pare di capire che se non ci sono cookies settati li setta lo script,
    dopo di che controlla se esistono (e non possono non esistere) e crea le colonne:

    questo potrebbe essere il nocciolo della questione per la quale esistono sempre i tre DIV riposizionabili tramite il drag&drop.

    Ciao


  • User Attivo

    [php]
    <?

    session_start();
    //array elementi -> possono anche essere presi da database
    $elemento[1]['titolo']="TITOLO 1/1";
    $elemento[1]['contenuto']="Contenuto 1 lista 1.";
    $elemento[2]['titolo']="TITOLO 2/1";
    $elemento[2]['contenuto']="Contenuto 2 lista 1.";
    $elemento[3]['titolo']="TITOLO 3/1";
    $elemento[3]['contenuto']="Contenuto 3 lista 1.";

    $elemento[4]['titolo']="TITOLO 1/2";
    $elemento[4]['contenuto']="Contenuto 1 lista 2.";
    $elemento[5]['titolo']="TITOLO 2/2";
    $elemento[5]['contenuto']="Contenuto 2 lista 2.";
    $elemento[6]['titolo']="TITOLO 3/2";
    $elemento[6]['contenuto']="Contenuto 3 lista 2.";

    $elemento[7]['titolo']="TITOLO 1/3";
    $elemento[7]['contenuto']="Contenuto 1 lista 3.";
    $elemento[8]['titolo']="TITOLO 2/3";
    $elemento[8]['contenuto']="Contenuto 2 lista 3.";
    $elemento[9]['titolo']="TITOLO 3/3";
    $elemento[9]['contenuto']="Contenuto 3 lista 3.";

    //conessione al database
    require('config.ini.php');

    $query = mysql_query("SELECT * FROM tab "); // WHERE id = per fare un unica tab metti il where è l'id utente
    if(!$query){ die('Errore: non riesco a eseguire la query'); }
    $risu = mysql_fetch_array($query);

    if(!isset($risu['colonna1'] && $risu['colonna2'] && $risu['colonna3'])){

    $array_colonna1=array(1,2,3);
    $array_colonna2=array(4,5,6);
    $array_colonna3=array(7,8,9);
    
                   } else {
    

    if(isset($risu['colonna1'])){
    $array_colonna1=explode(",",$risu['colonna1']);
    }else{
    $array_colonna1=Array();
    }
    if(isset($risu['colonna2'])){
    $array_colonna2=explode(",",$risu['colonna2']);
    }else{
    $array_colonna2=Array();
    }
    if(isset($risu['colonna3'])){
    $array_colonna3=explode(",",$risu['colonna3']);
    }else{
    $array_colonna3=Array();
    }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "h**p://w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="h
    p://w.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>Script ajax: Drag and drop con scriptaculous e salvataggio posizione</title>
    <meta h
    p-equiv="content-type" content="text/html; charset=utf-8" />
    <script src="prototype.js" type="text/javascript"></script>
    <script src="scriptaculous.js" type="text/javascript"></script>
    <script src="unittest.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>

    <div class="container">
    <div class="colonna">
    <ul class="sortabledemo" id="firstlist">
    <?
    for($elementi=0;$elementi<count($array_colonna1);$elementi++){
    ?>
    <li class="item" id="firstlist_key<?=$array_colonna1[$elementi]?>">
    <div class="handle"><?=$elemento[$array_colonna1[$elementi]]['titolo']?></div> <?=$elemento[$array_colonna1[$elementi]]['contenuto']?>
    </li>
    <?
    }
    ?>
    </ul>
    </div>
    <div class="colonna">
    <ul class="sortabledemo" id="secondlist">
    <?
    for($elementi=0;$elementi<count($array_colonna2);$elementi++){
    ?>
    <li class="item" id="secondlist_key<?=$array_colonna2[$elementi]?>">
    <div class="handle"><?=$elemento[$array_colonna2[$elementi]]['titolo']?></div> <?=$elemento[$array_colonna2[$elementi]]['contenuto']?>
    </li>
    <?
    }
    ?>
    </ul>
    </div>
    <div class="colonna">
    <ul class="sortabledemo" id="thirdlist">
    <?
    for($elementi=0;$elementi<count($array_colonna3);$elementi++){
    ?>
    <li class="item" id="secondlist_key<?=$array_colonna3[$elementi]?>">
    <div class="handle"><?=$elemento[$array_colonna3[$elementi]]['titolo']?></div> <?=$elemento[$array_colonna3[$elementi]]['contenuto']?>
    </li>
    <?
    }
    ?>
    </ul>
    </div>
    </div>
    <script type="text/javascript">
    // <![CDATA[
    Sortable.create("firstlist",
    {dropOnEmpty:true,handle:'handle',containment:["firstlist","secondlist","thirdlist"],constraint:false,
    onUpdate:function(){var myAjax = new Ajax.Request("save.php", {method:'get',parameters:Sortable.serialize('firstlist')+"&"+Sortable.serialize('secondlist')+"&"+Sortable.serialize('thirdlist')}) }});
    Sortable.create("secondlist",
    {dropOnEmpty:true,handle:'handle',containment:["firstlist","secondlist","thirdlist"],constraint:false,
    onUpdate:function(){var myAjax = new Ajax.Request("save.php", {method:'get',parameters:Sortable.serialize('firstlist')+"&"+Sortable.serialize('secondlist')+"&"+Sortable.serialize('thirdlist')}) }});
    Sortable.create("thirdlist",
    {dropOnEmpty:true,handle:'handle',containment:["firstlist","secondlist","thirdlist"],constraint:false,
    onUpdate:function(){var myAjax = new Ajax.Request("save.php", {method:'get',parameters:Sortable.serialize('firstlist')+"&"+Sortable.serialize('secondlist')+"&"+Sortable.serialize('thirdlist')}) }});
    // ]]>
    </script>
    </body>
    </html>
    [/php]

    ho fatto cosi ma mi da questo errore

    Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ',' or ')' in /membri/zomer/dd/index.php on line 37


  • User Attivo

    Ciao,
    penso che l'errore si riferisca a questo if:
    [php]if(!isset($risu['colonna1'] && $risu['colonna2'] && $risu['colonna3'])){[/php]Prova a scrivere così:
    [php]
    if(!isset($risu['colonna1']) && !isset($risu['colonna2']) && !isset($risu['colonna3'])){
    [/php]Ciao


  • User Attivo

    Ora funziona, ma solo la prima volta, perche l'arry sono troppo lunghe per il database...almeno credo...


  • User Attivo

    Ciao,
    non trovi nessuna informazione neanche nel file di log error.log di apache?