Pubblicazione dati su calendario settimanale

Discussione in 'jQuery' iniziata da armando31, 15 Agosto 2015.

  1. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao a tutti, spero sia la sezione giusta...

    Volevo condividere con voi questa mia idea e chiedervi una mano nel realizzarla

    Ho scaricato questo calendario settimanale in jquery
    ***********
    e l'ho modificato nel layout secondo le mie esigenze
    ***********

    Adesso la vera sfida....per me che mi impegno e mi scervello ma che sono un vero profano in materia.....è la seguente:

    Ho un database MySql dove ho delle tabelle che hanno come nome delle date (es. 15/08/2015) e che contengono i campi:

    ora , minuti , lezione

    Vorrei fare in modo da avere nel calendario la visualizzazione di queste informazioni in modo che siano consultabili avanti ed indietro nel tempo....
    tipo:

    LUNEDI..................| MARTEDI ...............| MERCOLEDI |GIOVEDI | VENERDI | SABATO | DOMENICA |
    9 AGOSTO .............|10 AGOSTO..............|11 AGOSTO |12 AGOSTO|13 AGOSTO|14 AGOSTO| 15 AGOSTO |
    ---------------------------------------------------------------------------------------------------
    10:00---ITALIANO | 10:00---GRECO....|
    12:30---STORIA....| 12:00---ITALIANO|
    14:00---LATINO....| 14:00---STORIA...|
    16:00---GRECO.....| 16:00---LATINO...|

    il problema è che non ho minimamente idea di quale sia il codice da scrivere....ed in quale file vada scritto....

    Ammetto di essermi impegnato , anche solo nella modifica del codice jquery per avere il calendario così come lo volevo io ma ....adesso proprio non riesco ad andare avanti

    Spero abbiate voglia di armi una mano nella realizzazione del mio "progettino"
     
    Ultima modifica di un moderatore: 15 Agosto 2015
  2. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Ciao, i miei browser bloccano il download dal sito dropcanvas, problemi di sicurezza. Elimino i link.
    Puoi caricare direttamente lo zip qui sul sito o direttamente il codice da analizzare.
    Per il tuo progettino ti basta creare un file json dei risultati delle query e assegnarlo alla varibile eventData
    Codice:
    var eventData = $.getJSON("paginadati.php");
    Non hai specificaro quale linguaggio utilizzi per connetterti al database, nel caso fosse php la funzione da utilizzare è json_encode()
    PHP:
    echo json_encode($arrayJSON_NUMERIC_CHECK);
     
    Ultima modifica: 15 Agosto 2015
  3. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Vedi l'allegato calendario_jquery.zip Vedi l'allegato script_23834 (1).zip

    Ciao criric,

    ho allegato le due cartelle , quella che si chiama calendario è quella con il file modificato da me, quella che si chiama script è invece il calendario originale.

    Per connettermi al database uso un file .php

    La mia maggiore perplessità è come fare ad incolonnare correttamente i dati prelevati nella colonna riguardante la data corretta
     
  4. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    praticamente hai commentato qualche funzione qua e la e lo script ha smesso di funzionare.
    se ho capito quello che ti serve, questo plugin jquery è forse troppo.
    ti basta una tabella formattata con i css e un paio di cicli php per creare il calendario.
     
  5. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao criric,

    beh che il codice sia sicuramente sporco.....non c'è dubbio!!!! D'altronde come anticipavo, io ci provo per amore e passione della materia.....ma sono assolutamente appena arrivato in questo mondo. L'esigenza stessa di partire da un calendario precompilato....ne è la dimostrazione....ne sono consapevole.

    Hai percaso qualche dritta, guida, suggerimento....insomma un modo per , non senza il mio impegno, riuscire a cominciare a mettere qualche mattoncino in più ?
     
  6. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    L'analisi del progetto è fondamentale. Bisogna capire bene come deve presentarsi il lavoro finito. E' sufficiente disegnarlo su un foglio di carta.
    A te basta incolonnare i dati che hai in tabella ? mi pare di aver capito che non ti interessa ne la riga con l'orario ne la possibilità di inserire nuovi record. In questo caso ti basterebbe creare la tabella al momento che carichi la pagina. Qui trovi funzioni utili per gestire le settimane. Potrei postarti una bozza stasera o al massimo domani.
    In caso contrario terrei il plugin jquery cosi come lo hai trovato e lavorerei sui dati json.
     
  7. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao cricric,
    in realtà io l'analisi del progetto l'ho fatta, per questo quando ho trovato quel plugin mi sono subito fermato su quello....era esattamente quello che volevo!! con la possibilità di scorrere le settimane avanti ed indietro nel tempo ed il giorno corrente evidenziato.

    Per capirci meglio quello che visivamente vorrei io è esattamente questo:
    CALENDARIO.JPG

    Al contrario,quindi, la riga con i giorni della settimana mi interessa molto , ed anche il fatto che , qualora vengano apportate modifiche al db dove sono presenti i dati da pubblicare , il calendario ne visualizzi l'aggiornamento.....anche se le modifiche non dovessero riguardare la settimana in corso.
    Questo pensavo di farlo schedulando ogni tot tempo il file .php che effettua il prelevamento dei dati dal db.

    Io mi blocco "come un bambino difronte ad un cartone animato di PeppaPig" :)......nel momento in cui devo scrivere il codice (al posto e nel file giusto tralaltro....immagino nel file .htm) per far si che i dati vengano inseriti nella colonna riguardante la data corretta.

    Quindi...immagino : Prendi i dati che sono inseriti nella tabella che si chiama 17/08/2015....e pubblicali nella colonna 17/08/2015
    E' quello il mio grosso scoglio....non ho minimamente idea di come farlo!...purtroppo!!!

    Spero di essermi ben spiegato.

    Riguardo al postarmi un aiutino....saresti d'avvero molto gentile!

    Grazie mille!
     
  8. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    E' esattamente il risultato che mi ero immaginato.
    Per righe intendevo le td che contengono gli orari, nel plugin tutte le ore sono visibili e i dati vengono sfalsati in base alla riga che contiene l'ora indicata nel json. Per questo dicevo che quel plugin è troppo per quello che ti serve. Inserire i dati recuperati dal database nella colonna giusta in effetti richiede un bel po di ragionamento ma sicuramente è fattibile.
    Purtroppo oggi ho avuto una giornata devastante e non sono dell'umore giusto per programmare, ti posso postare una bozza che avevo preparato ieri sera.
    PHP:
    <?php

    function getDaysOfWeek($number false) {
        
    $week $number $number date("W");
        
    $monday date('Y-m-d'strtotime(date('Y') . 'W' date("W")));
        
    $daysOfWeek = array($monday);
        list(
    $year$month$day) = explode("-"$monday);
        for (
    $days 1$days 7$days++) {
            
    $daysOfWeek[] = date("Y-m-d"mktime(000$month$day $days$year));
        }
        return 
    $daysOfWeek;
    }

    function 
    formatDay($date) {
        list(
    $year$month$day) = explode("-"$date);
        
    $days = array("DOM""LUN""MAR""MER""GIO""VEN""SAB");
        
    $months = array(null"GEN""FEB""MAR""APR""MAG""GIU""LUG""AGO""SET""OTT""NOV""DIC");
        
    $numberDay date('w'mktime(000$month$day$year));
        return 
    $days[$numberDay] . " " $day " " $months[(int) $month];
    }
    ?>
    <table class="weektable">
        <thead>
            <tr>
                <?php
                
    foreach (getDaysOfWeek() as $date) {
                    echo 
    "<th>" formatDay($date) . "</th>";
                }
                
    ?> 
            </tr>
        </thead>
        <tbody>

        </tbody>
    </table>
    <style>
        table.weektable {
            border-collapse: collapse;
            border-color: #666666;
            border-width: 1px;
            color: #333333;
            font-family: verdana,arial,sans-serif;
            font-size: 11px;
            margin: 14px 0;
            width: 100%;
        }
        table.weektable th {
            background-color: #dedede;
            border-color: #999;
            border-style: solid;
            border-width: 1px;
            padding: 8px;
        }
    </style>
    E' solo un inizio, mancano le query, la gestione dei dati e la navigazione tra le settimane.
    Io sono dell'idea che è meglio scrivere 10 righe di codice piuttosto che cancellarne 90 da un codice già fatto.
     
  9. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Grazie mille per questo primo pezzo di codice!...criric

    Pardon!...avevo capito male io, credevo intendessi la riga riportante giorno/mese....

    Hai ragione quando dici che è meglio scrivere 10 righe piuttosto che cancellarne 90 ...... ma bisogna poterselo permettere.....ed io....non posso!

    Ho provato il codice....ed è perfetto!....Domani intendo anche studiarmelo un po, così da far anche tesoro della possibilità di poter studiare un codice dalla sua nascita!

    Davvero grazie mille!!...per i prossimi steps chiaramente non posso che aspettare che tu abbia tempo e voglia di...accompagnarmi per mano. Chiaramente non mancheranno prove di sviluppo in autonomia, e spero (anche se dubito)...di poterti sorprendere con qualche pezzetto di codice scritto come si deve.
     
  10. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Ciao, non ho avuto molto tempo in questi giorni. Ho aggiunto la navigazione tra le settimane sfruttando ajax (non ho testato) e evidenziato il giorno corrente. Ho messo un esempio online. Ho creato 3 pagine
    la principale
    HTML:
    <html>
        <head>
            <title>Calendario Settimanale</title>
            <meta charset="UTF-8">
            <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
            <link type="text/css" rel="stylesheet" href="calendario.css"/>
            <script type="text/javascript">
                $(document).ready(function () {
                    mostraCalendario();
                    $("input[name='avanti']").click(function () {
                        $("input[name='week']").val(parseInt($("input[name='week']").val()) + 1);
                        mostraCalendario();
                    });
                    $("input[name='indietro']").click(function () {
                        $("input[name='week']").val(parseInt($("input[name='week']").val()) - 1);
                        mostraCalendario();
                    });
                    $("input[name='oggi']").click(function () {
                        $("input[name='week']").val(0);
                        mostraCalendario();
                    });
                });
                function mostraCalendario() {
                    $("#calendario").load("tabella_calendario.php", {"week": $("input[name='week']").val()});
                }
            </script>
        </head>
        <body>
            <div id="navigazione">
                <input type="hidden" name="week" value="0"/>
                <input type="button" name="oggi" value="Oggi"/>
                <input type="button" name="indietro" value="<<"/>
                <input type="button" name="avanti" value=">>"/>
            </div>
            <div id="calendario"></div>
        </body>
    </html>
    
    la pagina tabella_calendario.php
    PHP:
    <?php

    function getDaysOfWeek() {
        
    $monday date('Y-m-d'strtotime(date('Y'strtotime('+' . (int) $_REQUEST['week'] . ' Week')) . 'W' date("W"strtotime('+' . (int) $_REQUEST['week'] . ' Week'))));
        
    $daysOfWeek = array($monday);
        list(
    $year$month$day) = explode("-"$monday);
        for (
    $days 1$days 7$days++) {
            
    $daysOfWeek[] = date("Y-m-d"mktime(000$month$day $days$year));
        }
        return 
    $daysOfWeek;
    }

    function 
    formatDay($date) {
        list(
    $year$month$day) = explode("-"$date);
        
    $days = array("DOM""LUN""MAR""MER""GIO""VEN""SAB");
        
    $months = array(null"GEN""FEB""MAR""APR""MAG""GIU""LUG""AGO""SET""OTT""NOV""DIC");
        
    $numberDay date('w'mktime(000$month$day$year));
        return 
    $days[$numberDay] . " " $day " " $months[(int) $month];
    }
    ?>
    <table class="weektable">
        <thead>
            <tr>
                <?php
                
    foreach (getDaysOfWeek() as $date) {
                    
    $current $date == date("Y-m-d") ? "class='current'" "";
                    echo 
    "<th $current>" formatDay($date) . "</th>";
                }
                
    ?>
            </tr>
        </thead>
        <tbody>

        </tbody>
    </table>
    e infine calendario.css
    Codice:
    table.weektable {
        border-collapse: collapse;
        border-color: #666666;
        border-width: 1px;
        color: #333333;
        font-family: verdana,arial,sans-serif;
        font-size: 11px;
        margin: 14px 0;
        width: 100%;
    }
    input[type="button"] {
        cursor: pointer;
    }
    table.weektable th,input[type="button"]  {
        background-color: #dedede;
        border:1px solid #999;
        padding: 8px;
    }
    table.weektable th.current {
        background-color: #FFF;
    }
    
    ho scritto in fretta e male ci sarà sicuramente qualcosa da sistemare
     
  11. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ahhhhhhhh!......quanta...tanta strada che ho da fare!

    Ciao criric,
    ho appena testato il tuo codice, (ovviamente grazie ancora mille per l'aiuto che mi stai dando!) , noto certo una marcata differenza tra la tua pagina di esempio on-line ed il codice che hai qui riportato. Credo però che questa differenza sia intenzionale, nel senso che credo tu voglia (giustamente) che io ci metta anche del mio nella realizzazione del calendario.
    Non ti nascondo che questa metodologia non mi dispiace, perchè vorrei trarre anche e soprattutto delle conoscenze da questo tuo aiuto. Certo l'idea di vedere il progetto realizzato mi pizzica non poco, ma quella può aspettare!....Mi soddisfa molto di più l'idea di arrivarci comprendendo ed imparando , piuttosto che avendo la pappa bella e pronta.
    Studierò quindi il tuo codice nei prossimi giorni e cercherò di comprenderne i criteri.....purtroppo solo dal 26 in poi potrò davvero dedicarmici a sufficienza (perchè sarò in ferie per una settimana)....ultimamente a lavoro stò facendo dei turni vagamente "assurdi".....che poco lasciano al tempo libero.

    Sei davvero molto disponibile.....rarità ai giorni d'oggi!!....Grazie!!

    Mi ritaglierò il più tempo possibile per studiarmi il codice....e appena avrò qualche delucidazione da chiederti te la posto....sperando che magari, più che una delucidazione, sia una mia versione del codice fin'ora trattato con la soluzione ai "buchi" da te lasciati perchè io apprenda

    Nel frattempo, se avessi qualche testo o guida da consigliarmi per meglio apprendere la materia, il consiglio sarebbe davvero bene accetto!!

    Buona serata
     
  12. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Ciao, in realtà ho modificato il codice online dopo che ti avevo postato l'inizio solo perchè ho trovato un po di tempo :).
    Ho aggiunto solamente il numero della settimana
    PHP:
    <div id="infoweek">
        <?php
        
    list($week$year) = explode("-"date('W-Y'strtotime(date('Y'strtotime('+' . (int) $_REQUEST['week'] . ' Week')) . 'W' date("W"strtotime('+' . (int) $_REQUEST['week'] . ' Week')))));
        echo (int) 
    $week "° settimana $year";
        
    ?>
    </div>
    e ho giocato un po con il css ma non è il mio forte.
    Direi che a questo punto, a parte l'aspetto grafico, mancano solo le query da inserire dentro ogni colonna
    PHP:
    <?php
            
    foreach (getDaysOfWeek() as $date) {
                
    $current $date == date("Y-m-d") ? "class='current'" "";
                
    $query "SELECT * FROM $date";
                echo 
    "<td $current>esegui e mostri i risultai</td>";
            }
            
    ?>
    Devo ancora capire perchè si incasina a cavallo del 2014/2015
     
  13. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Ho modificato di nuovo il codice online :
    per testare ho crato un area di testo per inserire delle righe nella colonna del giorno corrente, niente di complicato :
    l'area di testo
    HTML:
    <fieldset>
                    <legend>Inerisci un commento</legend>
                    <textarea rows="6" cols="40"></textarea>
                    <input type="button" name="inserisci" value="Inserisci"/>
                </fieldset>
    
    la funzione javascript associata
    Codice:
    $("input[name='inserisci']").click(function () {
                        var comment = $("textarea").val();
                        if(comment == "") {
                            alert("La textarea e' vuota");
                            return false;
                        }
                        $("input[name='inserisci']").attr("disabled", true);
                        $("textarea").val("")
                        $.post("comments.php", "comment=" + comment, function () {
                            $("input[name='inserisci']").attr("disabled", false);
                            mostraCalendario();
                        });
                    });
    
    e il file php che elabora la richiesta
    PHP:
    $file date("Y-m-d") . ".txt";

    if (
    file_exists($file)) {
        
    $fr fopen($file'a');
        
    fwrite($fr"\n" $_REQUEST['comment']);
    } else {
        
    $fr fopen($file'w');
        
    fwrite($fr$_REQUEST['comment']);
    }
    fclose($fr);
    In pratica crea un file di testo con la data corrente e ci scrive dentro i commenti, giusto per provare
     
  14. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao criric,

    ho seguito le tue istruzioni passo passo, ho visitato anche il tuo sito (pieno di cose interessanti tra l'altro).....ma sono arrivato solo a questo "magro" risultato.....
    http://www.web1105.altervista.org/Calendario_criric_ins_dati/calendario.php

    Non capisco, oltre alla motivazione della visualizzazione di tutti quei punti interrogativi (ma credo che sia relativo all'interpretazione del browser riguardo ai caratteri speciali) , dove inserire il pezzo di codice al quale fai riferimento quando dici:
    ho provato diverse soluzioni.....ma niente!!!

    attualmente ho le 4 pagine di cui parli tu anche nel post sul tuo sito, chiamate così come le hai chiamate tu.
    il file calendario.php ha questo codice:

    Codice:
    <html>
        <head>
            <title>Calendario Settimanale</title>
            <meta charset="UTF-8">
            <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
            <link type="text/css" rel="stylesheet" href="calendario.css"/>
            <script type="text/javascript">
                $(document).ready(function () {
                    mostraCalendario();
                    $("input[name='avanti']").click(function () {
                        $("input[name='week']").val(parseInt($("input[name='week']").val()) + 1);
                        mostraCalendario();
                    });
                    $("input[name='indietro']").click(function () {
                        $("input[name='week']").val(parseInt($("input[name='week']").val()) - 1);
                        mostraCalendario();
                    });
                    $("input[name='oggi']").click(function () {
                        $("input[name='week']").val(0);
                        mostraCalendario();
                    });
                    $("input[name='inserisci']").click(function () {
                        var comment = $("textarea").val();
                        if(comment == "") {
                            alert("La textarea e' vuota");
                            return false;
                        }
                        $("input[name='inserisci']").attr("disabled", true);
                        $("textarea").val("")
                        $.post("comments.php", "comment=" + comment, function () {
                            $("input[name='inserisci']").attr("disabled", false);
                            mostraCalendario();
                        });
                    });
                });
                function mostraCalendario() {
                    $("#loading").html("Caricamento in corso .....");
                    $("#calendario").load("tabella_calendario.php", {"week": $("input[name='week']").val()}, function () {
                        $("#loading").html("");
                    });
                }
            </script>
        </head>
        <body>
    
            <div id="container">
    
                <div id="navigazione">
                    <span id="titolo">Calendario settimanale </span>
                    <input type="hidden" name="week" value="0"/>
                    <input type="button" name="oggi" value="Oggi"/>
                    <input type="button" name="indietro" value="<"/>
                    <input type="button" name="avanti" value=">"/>
                </div>
                <span id="loading"></span>
                <div id="calendario"></div>
                <fieldset>
                    <legend>Inserisci un commento</legend>
                    <textarea rows="6" cols="40"></textarea>
                    <input type="button" name="inserisci" value="Inserisci"/>
                </fieldset>
            </div>
    
        </body>
    </html>
    
    
    tabella calendario.php ha questo codice:
    Codice:
    <?php
    
    function getDaysOfWeek() {
        $monday = date('Y-m-d', strtotime(date('Y', strtotime('+' . (int) $_REQUEST['week'] . ' Week')) . 'W' . date("W", strtotime('+' . (int) $_REQUEST['week'] . ' Week'))));
        $daysOfWeek = array($monday);
        list($year, $month, $day) = explode("-", $monday);
        for ($days = 1; $days < 7; $days++) {
            $daysOfWeek[] = date("Y-m-d", mktime(0, 0, 0, $month, $day + $days, $year));
        }
        return $daysOfWeek;
    }
    
    function formatDay($date) {
        list($year, $month, $day) = explode("-", $date);
        $days = array("Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato");
        $months = array(1, 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto',
            'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
        $numberDay = date('w', mktime(0, 0, 0, $month, $day, $year));
        return $days[$numberDay] . " " . $day . " " . $months[(int) $month];
    }
    ?>
    <div id="infoweek">
        <?php
        list($week, $year) = explode("-", date('W-Y', strtotime(date('Y', strtotime('+' . (int) $_REQUEST['week'] . ' Week')) . 'W' . date("W", strtotime('+' . (int) $_REQUEST['week'] . ' Week')))));
        echo (int) $week . "° settimana $year";
        ?>
    </div>
    <table class="weektable">
        <thead>
            <tr>
                <?php
                foreach (getDaysOfWeek() as $date) {
                    $current = $date == date("Y-m-d") ? "class='current'" : "";
                    echo "<th $current>" . formatDay($date) . "</th>";
                }
                ?>
            </tr>
        </thead>
        <tbody>
            <?php
            foreach (getDaysOfWeek() as $date) {
                $current = $date == date("Y-m-d") ? "class='current'" : "";
                echo "<td $current>";
                $file = $date . ".txt";
                if (file_exists($file)) {
                    $fr = fopen($file, 'r');
                    while (!feof($fr)) {
                        $riga = fgets($fr);
                        echo $riga . "<p class='separa'></p>";
                    }
                    fclose($fr);
                }
                echo "</td>";
            }
            ?>
        </tbody>
    </table>
    il file .css è identico al tuo

    ed il file comments.php l'ho lasciato vuoto.....come credo di aver capito che vada fatto.....

    dove sbaglio ancora???

    Abbi pazienza dai.....forse ti sembrerò un pò zuccone!...lo capisco....ma sono solo un principiantissimo!...con tanta voglia di imparare però!!!:rolleyes:

    Grazie!!
     
  15. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Per il tuo progetto i comments non servono, devi solamente eseguire le query sul database. Hai detto di avere una tabella per ogni giorno ? il corpo del tuo calendario sarà + o - così
    PHP:
    <tbody>
            <?php
            
    foreach (getDaysOfWeek() as $date) {
                
    $current $date == date("Y-m-d") ? "class='current'" "";
                
    $query "SELECT * FROM $date";
                echo 
    "<td $current>esegui e mostri i risultai</td>";
            }
        </
    tbody>
    in pratica per ogni giorno fai una query sul db e se trovi risultati li incolonni.
    Peri i punti interrogativi puoi cambiare il charset da
    HTML:
    <meta charset="UTF-8">
    a
    HTML:
    <meta charset=ISO-8859-1">
    oppure puoi usare le entità html
     
  16. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    ok....anche se non capisco ancora dove sbagliavo nel replicare il tuo esempio....dall'ultimo post che ho scritto ho provato ancora ma....nulla da fare...???

    Comunque si, la mia idea era quella di una tabella per ogni giorno, anche se nel mio "disegno" questo aspetto non lo avevo granchè approfondito....perchè senza giungere fin qui (intendo al punto dove mi hai portato con la realizzazione del layout del calendario, il giorno corrente evidenziato, ed il resto ) ...approfondire l'aspetto del database, non serviva a molto. Ma adesso mi vengono delle perplessità!
    Ti spiego meglio:
    Ho un file . xml così strutturato:

    Codice:
    <?xml version="1.0"?>
    
    -<Root>
           -<OrarioLezioni>
               -<Lezioni>
                  -<Giorno>
                         <![CDATA[08/22/2015]]>
                   </Giorno>
                   <Ore>10</Ore>
                   <Minuti>0</Minuti>
                   <Lezione>ITALIANO</Lezione>
                </Lezioni>
               -<Lezioni>
                  -<Giorno>
                        <![CDATA[08/22/2015]]>
                   </Giorno>
                  <Ore>11</Ore>
                  <Minuti>30</Minuti>
                  <Lezione>MATEMATICA</Lezione>
                  </Lezioni>
               -<Lezioni>
                   -<Giorno>
                        <![CDATA[08/22/2015]]>
                    </Giorno>
                    <Ore>14</Ore>
                    <Minuti>0</Minuti>
                    <Lezione>STORIA</Lezione>
                    </Lezioni>
               -<Lezioni>
                  -<Giorno>
                    <![CDATA[08/22/2015]]>
                   </Giorno>
                   <Ore>16</Ore>
                   <Minuti>30</Minuti>
                   <Lezione>MATEMATICA</Lezione>
                   </Lezioni>
       </OrarioLezioni>
    </Root>
    
    Questo file viene generato tutte le sere , e la mia idea iniziale è stata quella di popolare un database MySql creato su altervista con una insert in una tabella che avevo chiamato OrarioLezioni , e che contiene i campi
    -Data
    -Ora
    -Minuti
    -Lezione

    Il file ,che lancio tutte le sere tramite un processo batch pianificato, utilizzato per popolare il db con i dati del file xml è:
    Codice php:
    Codice:
    <?php
    $host = 'indirizzo_sito_web';
    $user = 'nome_utente';
    $pass = 'password';
    $db = 'my_database';
    $con = mysql_connect($host,$user,$pass) or die (mysql_error());
    $sel = mysql_select_db($db) or die (mysql_error());
    
    $file = "OrarioLezioni.xml";
    $xml = simplexml_load_file($file);
    	
    	foreach( $xml->xpath("/Root/OrarioLezioni/Lezioni") as $value ) {
    		$data = $value->Giorno;
    		$ora = $value->Ora;
    		$minuti = $value->Minuti;
    		$ingressi = $value->Lezione;
    			
    $sql="INSERT INTO LeolandiaEntry (data,ora,minuti,ingressi) VALUES ('$data','$ora','$minuti','$ingressi')";		
    
    $rssql = mysql_query( $sql );
    		
    	echo ( $rssql ) ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante";
    	
    }
    
    //else
    //	echo "Nessun file inserito";
    
    ?>
    
    L'insert funziona...ma chiaramente mi crea tante righe così composte:

    Data - Ora - Minuti - Lezione

    per quanti sono i nodi del file .xml e , se si esegue l'insert più volte , le righe di duplicano e si moltiplicano.

    Da qui è nata la mia idea di avere una tabella per ogni giorno (che di fatto ancora non ho, è solo un'idea) così da poter evitare duplicati , in caso ci fossero modifiche riguardo all'orario delle lezioni di un giorno ed il file di "upload" venisse lanciato nuovamente per aggiornare il db.

    Chiaramente dovrei trovare il modo di generare una tabella avente per nome il valore del tag CDATA e che abbia come campi i restanti nodi , e soprattutto , inserire un controllo secondo il quale se la tabella dovesse già esistere venga sovrascritta e non duplicata....

    Ma è un buon modo per gestire il database ed arrivare al risultato sperato ? o è meglio fare diversamente?
    Cosa ne pensi?
     
  17. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    nel file comments.php che hai lasciato vuoto dovevi inserire quelle righe php che non sapevi dove mettere.
    Visto che hai il file xml potresti anche fare a meno del database. Memorizzi il file in una directory e vai a leggerlo in ogni colonna. Come ho fatto io per i file txt. Forse però è meglio fare un ragionamento più approfondito. Fammi sapere se ti viene in mente qualcosa. Io non credo di averne il tempo per un paio di giorni.
     
  18. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ok , hai ragione! Faccio qualche ragionamento, metto giù qualche idea, testo un pò le cose che mi vengono in mente e...appena ho qualcosina di concreto da sottoporti (non come il banalissimo errore del file comments.php lasciato vuoto)....mi permetto di seccarti ancora un po...se posso.

    Anche se ormai credo che tu mi abbia portato vicinissimo alla meta ( e ti ringrazio moltissimo per questo )

    Spero il tuo paio di giorni di "assenza" sia dovuto a vacanze o comunque a piacevoli motivi...

    Spremo un po le meningi e nel frattempo ti lascio in pace......a presto

    Buona serata
     
  19. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao criric,
    ho fatto qualche prova....e qualche passo avanti. Il punto dove sono arrivato puoi sempre vederlo qui: http://www.web1105.altervista.org/Calendario_criric_ins_dati/calendario.php

    Banalmente, ho eliminato i punti interrogativi che comparivano al posto dei caratteri speciali....ma cosa più rilevante....ho modificato il codice in modo da prendere come riferimento un file .xml , così da poterne leggere i valori dei vari tag tramite la funzione simplexml

    Codice:
    Codice:
    <table class="weektable">
        <thead>
    	<tr>
                <?php
                	
    	    foreach (getDaysOfWeek() as $date) {
                    
    	        $current = $date == date("Y-m-d") ? "class='current'" : "";
    
    		echo "<th $current>" . formatDay($date) . "</th>";
                }
                ?>
            </tr>
        </thead>
        <tbody>
            <?php
    
            foreach (getDaysOfWeek() as $date) {
                $current = $date == date("Y-m-d") ? "class='current'" : "";
                echo "<td $current>";
                $file = $date . ".xml";
    
    $xml = simplexml_load_file($file);
    
    if (file_exists($file))
    
    foreach ($xml->xpath("/Root/OrarioLezioni/Lezioni") as $value ) {
    		
    		$ore = $value->Ore;
    		$minuti = $value->Minuti;
    		$lezione = $value->Lezione;
    		$durata = $value->Durata;
    		
    		 echo $ore.":".$minuti." --- ".$lezione."<br></br>","Durata ".$durata." Minuti";
      		 
                
    $fr = fopen($file, 'r');
    while (!feof($fr))
    $riga = fgets($fr);
    echo $riga . "<p class='separa'></p>";
              }  
    fclose($fr);
    
                echo "</td>";
            }
    
     ?>
        </tbody>
    </table>
    A questo punto utilizzerò il metodo "NO-DB" della cartella contenente i vari files, inseriti all'interno della stessa dopo averli rinominati (Y-M-D) con un processo batch.

    Mi faceva piacere condividere con te questo piccolo passettino in avanti che ho fatto....data la disponibilità con la quale mi hai imboccato i vari passaggi !!!

    Volevo però anche sottoporti 2 idee che mi sono venute in mente....e che vorrei mettere in pratica:

    1- Mi piacerebbe (sfruttando il tag xml <Durata>) far si che ,se sono presenti lezioni in quel giorno, comparisse in alto (sotto la riga della data ma prima del primo valore relativo alla lezione) una label con la durata totale delle lezioni di quel giorno.

    ..............INUTILE DIRE CHE HO PROVATO A FARE DA ME MA....LA SOMMA RIESCE....SOLO CHE SI COMPORTA IN MODO STRANO....A SECONDA DI DOVE METTO L'ISTRUZIONE TIPO:
    Codice:
    $durataTot = 0
    $durataTotale = $durataTot += +Durata;
    echo $durataTotale;
    Mi conteggia solo la somma dei tag precedenti, o addirittura non mi somma nulla...!!!!!

    2- Nel file .xml il tag <Minuti> riporta un solo zero per l'ora e , chiaramente , due cifre per la mezz'ora.....come potrei fare secondo te per imporre la visualizzazione di un doppio zero in corrispondeza dell'ora piena?

    Spero tu abbia la pazienza di darmi qualche indicazione ancora....infondo daì!...anche se un passettino alla volta...piano piano cerco di muovermi anche un pochino con le mie gambe.....anche se spesso mi ritrovo ancora con i lacci delle scarpe legati tra loro!!!!

    P.S. ho comprato un manualetto di PHP....giusto per cominciare a studiare un po meglio....finito questo vedrò di passare a qualcosa di più completo

    Buona serata
     
  20. armando31

    armando31 Nuovo Utente

    Registrato:
    15 Agosto 2015
    Messaggi:
    21
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao criric,

    piccolo aggiornamento , so che ti sembrerà una stupidagine , ma mi faceva piacere condividerlo con te. ...E poi per me anche un così piccolo punto smarcato in autonomia...è una grossa soddisfazione. Poi credo che anche per eventuali altri visitatori del forum , che sono o saranno interessati alla realizzazione del "mini-progettino"....poter avere la cronistoria di come i vari punti vengono trattati , affrontati e poi smarcati...può essere utile.

    Nel mio ultimo post ti parlavo della possibilità di visualizzare , riguardo al valore contenuto all' interno del tag <Minuti> ,sempre un valore con doppia cifra, e non con un solo zero (nel caso dell'ora piena).

    Ragionandoci un pò ho risolto così:

    CODICE:

    Codice:
    if ($minuti<29)								
    		 echo $ora.":".$minuti."0 --- ".$lezione."<br></br>","Durata ".$durata." Minuti";		
    										
    	else									
    		echo $ora.":".$minuti." --- ".$lezione."<br></br>","Durata ".$durata." Minuti";
    Mi interessava il tuo parere...ti sembra una buona soluzione?....o ti sembra un accrocchio pasticciato?

    Resto invece moooolto in alto mare riguardo l'altra perplessità che ti avevo esposto:
    1- Mi piacerebbe (sfruttando il tag xml <Durata>) far si che ,se sono presenti lezioni in quel giorno, comparisse in alto (sotto la riga della data ma prima del primo valore relativo alla lezione) una label con la durata totale delle lezioni di quel giorno.

    Ciao
     
Sto caricando...

Condividi questa Pagina