Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 45

Discussione: orari su agenda

  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

    orari su agenda

    Salve, sto diventando matto su una agenda che sto creando da 0..
    ho fatto quasi tutto, cioè di suo funziona.. negli orari giusti mette i colori giusti: inizio e fine evento.. ed è ok. lo faccio con il confronto tra timestamp, e questa cosa sarà importante per il mio "problema"
    MA. il cliente mi fa: "mettiamo che quando non c'è l'evento nell'orario, ci clicco e mi propone un nuovo evento a quell'orario.."
    sembrava facile ma è da ieri mattina che ci sbatto la capa..
    in pratica che succede? che il timestamp dell'inizio evento è uguale al timestamp solo dell'ora corretta, e non è uguale a tutti i successivi fino alla fine dell'evento. quindi mi cambia colore all'inizio dell'evento, ma le ore successive in cui l'evento dovrebbe essere ancora attivo, mi tornano bianche. in effetti ha ragione lui, non deve funzionare.. ma non so come andare avanti, le ho provate tutte..

    metto un po' di codice, magari qualcuno può aiutarmi
    Codice PHP:
    // qua mi salvo i dati
    do {
      
    $id_note[$i] = $row_lunedi['id_note'];    
      
    $data_inizio[$i] = $row_lunedi['data_note'];
      
    $data_fine[$i] = $row_lunedi['data_fine'];
      
    $TESTO_NOTE[$i] = $row_lunedi['TESTO_NOTE'];
      
    // echo $TESTO_NOTE[$i];
      
    $colore[$i] = $row_lunedi['colore'];
      
    $timestamp_datimiei[$i] = strtotime($data_inizio[$i]);
      
    $timestamp_datafine[$i] = strtotime($data_fine[$i]);

    $MIOARRAY[] = strtotime($data_inizio[$i]);
    $MIOARRAY[] = strtotime($data_fine[$i]);


      
    $i++;
    //  echo "AAAA" . $data_inizio[$i];
      
      
    } while ($row_lunedi mysql_fetch_assoc($QUERY_DI_lunedi));

    // qua genero i timestamp delle ore
    $j 0;
       for(
    $i=0;$i<24;$i++) {
       

        if(
    $i<10) {
        
    $j "0" $i ":00:00";
        } else {
        
    $j $i ":00:00";
        }
        
    $z $lunedi " " $j;
        
        
    $timestamp_orario strtotime($z);


    // questo è il pezzo che non funziona. in realtà solo il primo if, senza quello funziona bene ma non genera i link nuovi per gli spazi

    if (in_array($timestamp_orario$MIOARRAY)) {
                
            if(
    $totalRows_lunedi 0) {
            for(
    $RECORDTOTALI 0$RECORDTOTALI $totalRows_lunedi$RECORDTOTALI++) {
              if(
    $timestamp_orario == $timestamp_datimiei[$RECORDTOTALI] or $timestamp_orario $timestamp_datimiei[$RECORDTOTALI] and $timestamp_orario $timestamp_datafine[$RECORDTOTALI] )  {
            
    //  questo è il colore di sfondo della riga quando è associato un evento
            
    echo "<tr bgcolor=" $colore[$RECORDTOTALI] . " onclick=\"javascript:location='modifica_pagina.htm?id=" $id_note[$RECORDTOTALI] . "'\" >" ; }
            }  
            } else {
    echo 
    "onclick=\"javascript:location='nuova_pagina.htm" ;
            }
            } else {
        echo 
    "<tr  onclick=\"javascript:location='nuova_pagina.htm?timestamp=$timestamp_orario'\" >";
        } 
    grazie per l'attenzione

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Il tuo codice mi sembra un po' complicato e incompleto (non hai postato tutto).
    Ecco una mia interpretazione. All'inizio faccio una simolazione del tuo db. Per ragioni di semplificazione non uso i timestamp ma le ore da 0 a 23.

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <?php 
      
    //======== simolazione dei dati del db
      //=== Primo evento 
      
    $i                      0;
      
    $id_note[$i]            = 101;    
      
    $data_inizio[$i]        = 2;
      
    $data_fine[$i]          = 3;
      
    $TESTO_NOTE[$i]         = "Evento dalle 2 alle 3";
      
    $colore[$i]             = "blue";
      
    $timestamp_datimiei[$i] = $data_inizio[$i];
      
    $timestamp_datafine[$i] = $data_fine[$i];
     
      
    //=== Secondo evento 
      
    $i                      1;
      
    $id_note[$i]            = 213;    
      
    $data_inizio[$i]        = 8;
      
    $data_fine[$i]          = 11;
      
    $TESTO_NOTE[$i]         = "Evento dalle 8 alle 11";
      
    $colore[$i]             = "yellow";
      
    $timestamp_datimiei[$i] = $data_inizio[$i];
      
    $timestamp_datafine[$i] = $data_fine[$i];
     
      
    //=== Terzo evento 
      
    $i                      2;
      
    $id_note[$i]            = 346;    
      
    $data_inizio[$i]        = 15;
      
    $data_fine[$i]          = 18;
      
    $TESTO_NOTE[$i]         = "Evento dalle 15 alle 18";
      
    $colore[$i]             = "green";
      
    $timestamp_datimiei[$i] = $data_inizio[$i];
      
    $timestamp_datafine[$i] = $data_fine[$i];
     
      
    //=== Quarto evento 
      
    $i                      3;
      
    $id_note[$i]            = 488;    
      
    $data_inizio[$i]        = 20;
      
    $data_fine[$i]          = 22;
      
    $TESTO_NOTE[$i]         = "Evento dalle 20 alle 22";
      
    $colore[$i]             = "#ff7f50";
      
    $timestamp_datimiei[$i] = $data_inizio[$i];
      
    $timestamp_datafine[$i] = $data_fine[$i];
     
    //===============================
     //=== Salvo il numero degli eventi
      
    $numEventi $i;
      
    //=== Preparo l'array delle ore
     
    $arrayOre = array();
     
    $arrayJ   = array();
     for(
    $index=0;$index 24;$index++) {
      
    $arrayOre[$index] = -1;
      if(
    $index<10) {
        
    $arrayJ[$index] = "0" $index ":00:00";
       } else {
        
    $arrayJ[$index] = $index ":00:00";
       }
     }  
     
    //=== In ogni ora "occupata" metto l'indice dell'evento
     
    for($index=0;$index <= $numEventi;$index++) {
       for(
    $index2=$data_inizio[$index];$index2<$data_fine[$index];$index2++) {
        
    $arrayOre[$index2] = $index;
      }  
     }  
    ?>
    <table>
    <?php 
     
    for($index=0;$index 24;$index++) {
      
    $curEventId $arrayOre[$index];
      
    $J          $arrayJ[$index];
      if (
    $curEventId != -1) {
       
    $color  $colore[$curEventId];
      
    $testo  $TESTO_NOTE[$curEventId];
      print 
    "<tr bgcolor='$color' onclick=\"javascript:location='modifica_pagina.htm?id=$curEventId'\">\n";
      print 
    "<td>$J - $testo</td>\n";  
        print 
    "</tr>\n";
      } else {
      print 
    "<tr onclick=\"javascript:location='nuova_pagina.htm?timestamp=$index'\">\n";
      print 
    "<td>$J </td>\n";  
        print 
    "</tr>\n";  
      }  
     }  
     
    ?>
    </table> 
    </body>
    </html>
    Capture00000.JPG
    Ultima modifica di badaze; 12-09-2014 a 23:37
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    non ci posso credere che funziona.. TI ODIO..
    NON PUOI CAPIRE, stavo impazzendo.. ho smesso da stamattina solo per mangiare.. non riuscivo ad entrare nel "quando non succede niente" del mio script per fargli visualizzare l'aggiunta del nuovo evento.. non ho capito come fa il tuo, ma è bastato prendere con substr il numero dell'ora e comprararlo a quello del DB per farlo andare... vabbè.. dove abiti che ti devo almeno una birra?

    ..QUESTA E' L'ICONA CHE TOCCA METTERE IN QUESTE SITUAZIONI

    ...e ora cerco ANCHE di capirci qualcosa..

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Felice di esserti stato d'aiuto.

    Se passi per Lione.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    azz... da roma è un po' fuori mano..
    c'è una imperfezione.. nel primo evento, ma solo nel primo, anche se come orario è le 4 il primo colore lo mette alle 5..

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    una volta eliminato questo errore, che comunque sto cercando di capire da solo, posso ripristinare secondo te i timestamp, o è completamente inutile. dato in più che ti posso dare per questo consiglio è che se un evento inizia alle 16:20, comunque l'orario delle 16 è colorato, perchè è una riga ogni ora..

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Posta il codice daro' un'occhiata dommattina.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da telegio Visualizza il messaggio
    una volta eliminato questo errore, che comunque sto cercando di capire da solo, posso ripristinare secondo te i timestamp, o è completamente inutile. dato in più che ti posso dare per questo consiglio è che se un evento inizia alle 16:20, comunque l'orario delle 16 è colorato, perchè è una riga ogni ora..
    Non saprei dirti. Se ti va bene com'è perche rendere lo script più complicato. Ora nanna.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ah, allora tengo questa..
    in realtà fa anche un'altro errore, di cui mi sono accorto cliccando e che ovviamente sto cercando di risolvere ma è tosta..
    "becca" solo il primo id_note, mentre quelli successivi no.. dopo mezz'ora che tentavo, ho cambiato nome alla variabile ed è ok.. ho capito cosa era, in pratica facevo che
    $id_note = $id_note[$curEventId];
    e siccome $id_note lo riconosce in pratica come un array, mi vedeva solo l'ultimo elemento.. dai, ti ho tolto qualche noia..
    ora vedo se l'altra cosa è una roba simile.. poi vado a nanna pure io..

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    riflessione notturna..
    anche se l'array data_inizio contiene correttamente i valori degli id, poi l'orario relativo, SOLO DEL PRIMO RECORD, non viene colorato correttamente.
    ho modificato l'orario sul db, visto che il primo evento durava 2 ore, mettendo che ne dura una sola, e non si colora niente..
    sto facendo un po' di prove spostando gli orari del giorno, visto che era una prova farne vari.. non ci sto capendo niente..

    meglio lavorare a mente lucida

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.