• 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?


  • User Attivo

    Scusa ma non so di cosa stai parlando, 🙂 io lavoro su altervista


  • User Attivo

    Ciao,
    pensavo che le prove le stessi facendo in locale o su un ambiente di test.

    Solitamente io faccio così:
    Sul mio pc ho creato un ambiente di test (web server apache, database mysql e linguaggio server-side PHP) e quando è tutto funzionante e testato, appunto, carico i nuovi file sul web server di 'produzione' ovvero dove risiede il mio sito (vedi la mia firma).

    Come mai lavori direttamente su altervista?
    Lo usi come ambiente di sviluppo per poterci lavorare in più di una persona contemporaneamente come se fosse un ambiente di test?

    Scusa la curiosità. :bho:

    :ciauz:


  • User Attivo
    1. il mio sito non è ancora on line per questo
    2. io uso easy php ma mi scoccio...non so perchè ho sepre provato i file su internet forse per questo
    3. poi alcune volte mi capita di non stare a casa è quindi posso lavorare senza potrami dietro hardwer esterni
    4. io credo che si sempre bene avere un un bacuk su una macchina che non sia la mia ( non si sa mai )

    comunque se vuoi parlare da vicono io ho messanger il mio contatto è: [email protected]


  • User Attivo

    Comunque,
    non ho capito a cosa ti riferissi prima quando dicevi di pensare che il problema era dovuto alla lunghezza degli array.

    Io non uso messenger,
    le chat non mi piaciono: troppo impegnative !:():

    Riguardo alla storia dei backup è meglio averne uno su altervista e uno sul proprio pc:

    Two is megl che One

    Ti ricorda qualcosa la citazione?

    Per il resto sono scelte.

    Ciao


  • User Attivo

    Non so più cosa fare...ho modificato la query ma ancora non va ecco lo script:

    index.php

    [PHP]
    <?
    error_reporting(E_ALL);
    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']) && !isset($risu['colonna2']) && !isset($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]

    save.php

    [PHP]
    <?
    session_start();
    if(isset($_GET['firstlist'])){$firstlist=$_GET['firstlist'];}else{$firstlist=Array();}
    if(isset($_GET['secondlist'])){$secondlist=$_GET['secondlist'];}else{$secondlist=Array();}
    if(isset($_GET['thirdlist'])){$thirdlist=$_GET['thirdlist'];}else{$thirdlist=Array();}

    $colonna1=str_replace("key","",implode(",",$firstlist));
    $colonna2=str_replace("key","",implode(",",$secondlist));
    $colonna3=str_replace("key","",implode(",",$thirdlist));

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

    $query = "UPDATE $db_nome.tab SET colonna1=$colonna1, colonna2=$colonna2, colonna3=$colonna3" ;
    if(!mysql_query($query,$dbh)) /eseguo la query e controllo se va a buon fine ^^/
    die("<h1>".mysql_error()."</h1>");
    mysql_close($db_nome);
    ?>
    [/PHP]

    INVOCO ANCHE L'AIUTO DI THEDARKITA SICCOME QUI NON C'E' LA FAREMO...


  • Super User

    Ciao,

    prova a trasformare:

    [php]
    $array_colonna1=array(1,2,3);
    $array_colonna2=array(4,5,6);
    $array_colonna3=array(7,8,9);[/php]

    in

    [php]
    $array_colonna1=array("1","2","3");
    $array_colonna2=array("4","5","6");
    $array_colonna3=array("7","8","9");
    [/php]

    una volta avevo un problema simile e ho risolto così.:)


  • User Attivo

    :bho:uff..niente...ha messo solo più tempo a caricare...:bho: