- Home
- Categorie
- Coding e Sistemistica
- PHP
- piccolo calendario
-
Ciao,
una delle filosofie più gettonate nello sviluppo del codice è "Don't repeat yourself".Ti dò un esercizio da fare:
-
con degli IF -----> raggruppa i mesi identici / crea le regole per tutti i gruppi di mesi
-
con un ciclo FOR o WHILE --------> stampa i numeri da 1 a 31, non ha senso scriverli tutti in blocco
-
è se c'è l'anno bisestile?
Facci sapere!
-
-
Ciao Artigiani del Web!
una cosa del genere potrebbe essere:
[PHP]
<?phpif (isset($_GET['anno'])){ $anno = $_GET['anno']; if($anno < 1583){ echo "Il calendario Greoriano inizia dal 1583"; }else{ /* Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ echo $anno."<br /><br />"; $g = 1; $m = 13; $a = $anno-1; $s = $g + 2 * $m + floor((3*($m+1))/5) + $a + floor($a/4); $r = floor($a/100) - floor($a/400) - 2; $q = ($s - $r); $z = $q%7; echo "Il primo giorno dell'anno è: "; if($z==0){echo "Sabato<br /><br />";} if($z==1){echo "Domenica<br /><br />";} if($z==2){echo "Lunedì<br /><br />";} if($z==3){echo "Martedì<br /><br />";} if($z==4){echo "Mercoledi<br /><br />";} if($z==5){echo "Giovedì<br /><br />";} if($z==6){echo "Venerdì<br /><br />";} /* / Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ for($mese=1;$mese<=12;$mese++){ if($mese==1){ echo "Gennaio<br />"; for($i=1; $i<=31; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==2){ echo "Febbraio<br />"; if($anno % 4 == 0){ for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } }else{ for($i=1; $i<=28; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } } echo "<br /><br />"; } if($mese==3){ echo "Marzo<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==4){ echo "Aprile<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==5){ echo "Maggio<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==6){ echo "Giugno<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==7){ echo "Luglio<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==8){ echo "Agosto<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==9){ echo "Settembre<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==10){ echo "Ottobre<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==11){ echo "Novembre<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } if($mese==12){ echo "Dicembre<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } echo "<br /><br />"; } } } }else{ $anno_corrente = date("Y"); header("location: index.php?anno=".$anno_corrente); }
?>
[/PHP]grazie mille!
notte!
-
Questa parte di codice:
[PHP] $col*=$q%7; $q+=1; if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} [/PHP]
si ripete.
Quindi l'odeale sarebeb farne una funzione e passargli i parametri
ad esempio
[PHP] <?php
if (isset($_GET['anno'])){ $anno = $_GET['anno']; if($anno < 1583){ echo "Il calendario Greoriano inizia dal 1583"; }else{ /* Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ echo $anno."<br /><br />"; $g = 1; $m = 13; $a = $anno-1; $s = $g + 2 * $m + floor((3*($m+1))/5) + $a + floor($a/4); $r = floor($a/100) - floor($a/400) - 2; $q = ($s - $r); $z = $q%7; echo "Il primo giorno dell'anno è: "; if($z==0){echo "Sabato<br /><br />";} if($z==1){echo "Domenica<br /><br />";} if($z==2){echo "Lunedì<br /><br />";} if($z==3){echo "Martedì<br /><br />";} if($z==4){echo "Mercoledi<br /><br />";} if($z==5){echo "Giovedì<br /><br />";} if($z==6){echo "Venerdì<br /><br />";} /* / Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ /* * Cycle */ function ciclo($col,$i){ if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } for($mese=1;$mese<=12;$mese++){ if($mese==1){ echo "Gennaio<br />"; for($i=1; $i<=31; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==2){ echo "Febbraio<br />"; if($anno % 4 == 0){ for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } }else{ for($i=1; $i<=28; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } } echo "<br /><br />"; } if($mese==3){ echo "Marzo<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==4){ echo "Aprile<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==5){ echo "Maggio<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==6){ echo "Giugno<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==7){ echo "Luglio<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==8){ echo "Agosto<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==9){ echo "Settembre<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==10){ echo "Ottobre<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==11){ echo "Novembre<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } if($mese==12){ echo "Dicembre<br />"; for($i=1; $i<=29; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } } } }else{ $anno_corrente = date("Y"); header("location: index.php?anno=".$anno_corrente); }
?>
[/PHP]Ora però ancora non ci siamo.
Dovresti riuscire a scrivere una sola volta anche il ciclo che lo contiene,
quindi inbvece di ripetere if 12 volte, dovresti fare un ARRAY ed inserirlo dentro.santecaserio.altervista.org/wordpress/?p=92
quindi l'array dovrebbe contenere ( 'gennaio' => 31, 'febbraio' => $dd_feb;(*) , 'marzo'=> 31 etc)
(* metti un if a livello superiore)
quindi alla fine di dovresti ritrovare solo con una cosa simile a
[PHP] for($mese=1;$mese<=12;$mese++){
echo "$mese<br />"; for($i=1; $i<=$max_day; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; }[/PHP]
attenzione alla variabile $max_day
Dove vai a sostituire i valori prima dell'IF
Spero di essermi spiegato bene
-
Per farti l'esempio completo,
anche se non dovrei (sarà mica un compito per la scuola? ),il codice finale (quasi) sarebbe:
[PHP] <?php
if (isset($_GET['anno'])){ $anno = $_GET['anno']; if($anno < 1583){ echo "Il calendario Greoriano inizia dal 1583"; }else{ /* Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ echo $anno."<br /><br />"; $g = 1; $m = 13; $a = $anno-1; $s = $g + 2 * $m + floor((3*($m+1))/5) + $a + floor($a/4); $r = floor($a/100) - floor($a/400) - 2; $q = ($s - $r); $z = $q%7; echo "Il primo giorno dell'anno è : "; /* * Array dei Giorni */ $giorni_array = array(0=>'Sabato', 1=>'Domenica', 2=>'Lunedì', 3=>'Martedì', 4=> 'Mercoledì', 5 =>'Giovedì' , 6 => 'Venerdì' ); /* * Ciclo dei Giorni */ foreach($giorni_array as $key=>$value){ if ($key == $z) { echo $value.' <br><br> '; } } /* / Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ /* * Ciclo dei Giorni */ function ciclo($col,$i){ if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } /* * Giorni di Febbraio - controllo se bisestile */ if($anno % 4 == 0) { $feb_day = 29; } else { $feb_day = 28; } /* * Array dei Mesi - TODO: FINIRE LISTA MESI */ $mesi_array = array('Gennaio'=>31, 'Febbraio'=>$feb_day, 'Marzo'=>31); /* * Ciclo dei Mesi */ foreach($mesi_array as $key=>$value){ echo 'Mese:'.$key.' - '; for($i=1; $i<=$value; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } }
}[/PHP]
Manca ancora da fare l'ultimo array, quello della funzione ciclo()
ma haui guà visto coem fare negli altri due array.Insomma come vedi c'è molta differnza di lunghezza fra il ptrimo codice postato e questo finale: ecco, l'biettivo di PHP è quello di riduree al minimo il codice,
nel limite del comprensibile (e qui c'è OOP) e di non ripetere inutilmente porzioni di codice.Ricordati di finire l'array dei MESI.
Spero di esserti stato di aiuto
-
ciao artigiani del web!
funziona bene, posto il codice:
[PHP]
<?php ob_start() ?>
<?php ini_set('display_errors','On'); error_reporting(E_ALL); ?>
<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Foundation | Welcome</title>
<link rel="stylesheet" href="css/foundation.css" />
<script src="js/vendor/modernizr.js"></script>
<link rel="stylesheet" href="css/app.css" />
</head>
<body>
<?php
if(isset($_GET['anno'])){
$anno = $_GET['anno'];
if($anno < 1583){
echo "Il calendario Greoriano inizia dal 1583";
}else{/* Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ echo "<div class='row'>"; echo "<div class='small-12 medium-12 large-12 columns'>"; echo "<h1>".$anno."</h1>"; echo "</div>"; echo "</div>"; echo "<div class='row'>"; $g = 1; $m = 13; $a = $anno-1; $s = $g + 2 * $m + floor((3*($m+1))/5) + $a + floor($a/4); $r = floor($a/100) - floor($a/400) - 2; $q = ($s - $r); $z = $q%7; /* / Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ /* Funzione che cicla i giorni della settimana ---------------------------------------------------------------------- */ function ciclo_giorni($col,$i){ if($col*==0){echo $i."S </a>";} if($col*==1){echo $i."D </a>";} if($col*==2){echo $i."L </a>";} if($col*==3){echo $i."M </a>";} if($col*==4){echo $i."M </a>";} if($col*==5){echo $i."G </a>";} if($col*==6){echo $i."V </a>";} } /* / Funzione che cicla i giorni della settimana ---------------------------------------------------------------------- */ /* Array dei giorni ---------------------------------------------------------------------- */ $giorni_array = array(0=>'Sabato', 1=>'Domenica', 2=>'Lunedì', 3=>'Martedì', 4=> 'Mercoledì', 5 =>'Giovedì' , 6 => 'Venerdì' ); /*foreach($giorni_array as $key=>$value){ if ($key == $z) { echo $value.' <br><br> '; } } */ /* / Array dei giorni ---------------------------------------------------------------------- */ /* Giorni di Febbraio ---------------------------------------------------------------------- */ if($anno % 4 == 0){ $feb_day = 29; }else{ $feb_day = 28; } /* / Giorni di Febbraio ---------------------------------------------------------------------- */ /* Array dei Mesi ---------------------------------------------------------------------- */ $mesi_array = array('Gennaio'=>31, 'Febbraio'=>$feb_day, 'Marzo'=>31, 'Aprile'=>30, 'Maggio'=>31, 'Giugno'=>30, 'Luglio'=>31, 'Agosto'=>31, 'Settembre'=>30, 'Ottobre'=>31, 'Novembre'=>30, 'Dicembre'=>31); foreach($mesi_array as $key=>$value){ echo $key.'<br />'; for($i=1; $i<=$value; $i++) { $col*=$q%7; $q+=1; ciclo_giorni($col,$i); } echo "<br /><br />"; } /* / Array dei Mesi ---------------------------------------------------------------------- */ for($mese=1;$mese<=12;$mese++){ echo "$mese<br />"; for($i=1; $i<=$max_day; $i++) { $col*=$q%7; $q+=1; ciclo_giorni($col,$i); } echo "<br /><br />"; } } }else{ $anno_corrente = date("Y"); header("location:index.php?anno=".$anno_corrente); }
?>
</div>
<script src="js/vendor/jquery.js"></script>
<script src="js/foundation.min.js"></script>
<script>
$(document).foundation();
</script>
</body>
</html>
[/PHP]però alla fine ripete il codice e restituisce l'errore:
Notice: Undefined variable: max_day in /Applications/MAMP/htdocs/cal/index.php on line **104
**a cosa serve max_day?
grazie mille per l'aiuto!
non è per scuola cmq mi diletto col php a tempo perso!grazie ancora!
saluti!
-
Ciao,
devi aver copiato male il codice (nel secondo esempio ho rifatto quella funzione usando altre variabili).Infatti c'è un ciclo foreach e non for.
Te lo ri-posto:
[PHP] <?phpif (isset($_GET['anno'])){ $anno = $_GET['anno']; if($anno < 1583){ echo "Il calendario Greoriano inizia dal 1583"; }else{ /* Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ echo $anno."<br /><br />"; $g = 1; $m = 13; $a = $anno-1; $s = $g + 2 * $m + floor((3*($m+1))/5) + $a + floor($a/4); $r = floor($a/100) - floor($a/400) - 2; $q = ($s - $r); $z = $q%7; echo "Il primo giorno dell'anno è : "; /* * Array dei Giorni */ $giorni_array = array(0=>'Sabato', 1=>'Domenica', 2=>'Lunedì', 3=>'Martedì', 4=> 'Mercoledì', 5 =>'Giovedì' , 6 => 'Venerdì' ); /* * Ciclo dei Giorni */ foreach($giorni_array as $key=>$value){ if ($key == $z) { echo $value.' <br><br> '; } } /* / Primo giorno dell'anno: praestigiator.com/index.php?p=approfondimenti/2010/09/02/il_calendario_perpetuo_mentale ---------------------------------------------------------------------- */ /* * Ciclo dei Giorni */ function ciclo($col,$i){ if($col*==0){echo $i."S ";} if($col*==1){echo "<span style='color:#f00'>".$i."D</span> ";} if($col*==2){echo $i."L ";} if($col*==3){echo $i."M ";} if($col*==4){echo $i."M ";} if($col*==5){echo $i."G ";} if($col*==6){echo $i."V ";} } /* * Giorni di Febbraio - controllo se bisestile */ if($anno % 4 == 0) { $feb_day = 29; } else { $feb_day = 28; } /* * Array dei Mesi - TODO: FINIRE LISTA MESI */ $mesi_array = array('Gennaio'=>31, 'Febbraio'=>$feb_day, 'Marzo'=>31); /* * Ciclo dei Mesi */ foreach($mesi_array as $key=>$value){ echo 'Mese:'.$key.' - '; for($i=1; $i<=$value; $i++) { $col*=$q%7; $q+=1; ciclo($col,$i); } echo "<br /><br />"; } }
}[/PHP]
NOn ha senso mettere un ciclo for (for($mese=1;$mese<=12;$mese++)
quando va da se che se un array contiene 12 elementi, basta ciclare questi 12 non c'è bisogno di numerarli con un for.Riguardati bene il codice.
Se fossimo a scuola direi che non sei stato capace di copiare bene
Gh gh gh
Fammi sapere!
-
PS: usi Mac, uh ?
-
ciao Artigiani del Web,
grazie per le dritte funziona tutto, ho sbagliato io
sono un dilettante! Si uso Mac, come hai fatto a capirlo?
grazie ancora
buona giornata
-
Senti ma...
e se per ogni giorno volessi attaccarci un link di questo tipo:impegni.php?anno=$anno&mese=$mese&data=data&giorno=$giorno
per scriverci degli impegni per poi memorizzarli in un db come faccio?
ho provato a metterli all'interno della funzione ma da errore,
probabilmente dovrebbero stare fuori?
grazie ancora
ciao!
-
@enricocarli said:
sono un dilettante! Si uso Mac, come hai fatto a capirlo?
MAMP è solo su ambiente MAC
Se ti studi l'acronimo lo vedi. A differenza di LAMP, che invece si usa su LINUX.
-
Devi fare altri due file, ad es.
- "addevent.php",
dal calendario aggiungi un link del tipo <a href="addevent.php?data=XXXXX">AGGIUNGI EVENTO</a>
Dentro questo file ci sarà una form che scrive nel database ad esempio
campi: ID / TITOLO / DESCRIZIONE / DATAdove data potrebbe essere fornita dal _GET del link
Dopodichè
- event.php
sempre da calendario fai fare per ogni data una chiamata al database per vedere se per ogni giorno esiste un record nel database,
se esiste scrive un link alla pagina "event.php" che invece pubblica i dati ( o se preferisci li pubblichi direttamente nel calendario senza pagina esterna)Potrebbe essere una cosa del genere, ad esempio.
-
ciao Artigiani!
ho tolto la funzione perchè mi faceva casino, ho fatto così:
index.php
[PHP]
<script type="text/javascript" src="js/jquery-1.10.1.min.js"></script><script type="text/javascript" src="js/jquery.fancybox.js?v=2.1.5"></script><link rel="stylesheet" type="text/css" href="css/jquery.fancybox.css?v=2.1.5" media="screen" /><script type="text/javascript"> $(document).ready(function() { $('.fancybox').fancybox(); });</script><?php if (isset($_GET['anno'])){ $anno = $_GET['anno']; if($anno < 1583){ echo "Il calendario Greoriano inizia dal 1583"; }else{ echo $anno."<br /><br />"; $g = 1; $m = 13; $a = $anno-1; $s = $g + 2 * $m + floor((3*($m+1))/5) + $a + floor($a/4); $r = floor($a/100) - floor($a/400) - 2; $q = ($s - $r); $z = $q%7; $giorni_array = array(0=>'Sabato', 1=>'Domenica', 2=>'Lunedì;', 3=>'Martedì;', 4=> 'Mercoledì;', 5 =>'Giovedì;' , 6 => 'Venerdì;' ); if($anno % 4 == 0){ $feb_day = 29; }else{ $feb_day = 28; } $mesi_array = array('Gennaio'=>31, 'Febbraio'=>$feb_day, 'Marzo'=>31, 'Aprile'=>30, 'Maggio'=>31, 'Giugno'=>30, 'Luglio'=>31, 'Agosto'=>31, 'Settembre'=>30, 'Ottobre'=>31, 'Novembre'=>30, 'Dicembre'=>31); foreach($mesi_array as $key=>$value){ echo $key.' - '; for($i=1; $i<=$value; $i++) { $col*=$q%7; $q+=1; if($col*==0){echo "<a class="fancybox fancybox.iframe" href="impegni.php?giorno=$col*&data=$i&mese=$key&anno=$anno">".$i."S</a> ";} if($col*==1){echo "<a class="fancybox fancybox.iframe" href="impegni.php?giorno=$col*&data=$i&mese=$key&anno=$anno" style="color:#f00">".$i."D</a> ";} if($col*==2){echo "<a class="fancybox fancybox.iframe" href="impegni.php?giorno=$col*&data=$i&mese=$key&anno=$anno">".$i."L</a> ";} if($col*==3){echo "<a class="fancybox fancybox.iframe" href="impegni.php?giorno=$col*&data=$i&mese=$key&anno=$anno">".$i."M</a> ";} if($col*==4){echo "<a class="fancybox fancybox.iframe" href="impegni.php?giorno=$col*&data=$i&mese=$key&anno=$anno">".$i."M</a> ";} if($col*==5){echo "<a class="fancybox fancybox.iframe" href="impegni.php?giorno=$col*&data=$i&mese=$key&anno=$anno">".$i."G</a> ";} if($col*==6){echo "<a class="fancybox fancybox.iframe" href="impegni.php?giorno=$col*&data=$i&mese=$key&anno=$anno">".$i."V</a> ";} } echo "<br /><br />"; } } } ?>[/PHP]impegni.php
[PHP]
<?php if($_GET['giorno']==0){echo "Sabato ";} if($_GET['giorno']==1){echo "Domenica ";} if($_GET['giorno']==2){echo "Lunedì ";} if($_GET['giorno']==3){echo "Martedì ";} if($_GET['giorno']==4){echo "Mercoledì ";} if($_GET['giorno']==5){echo "Giovedì ";} if($_GET['giorno']==6){echo "Venerdì ";} echo $_GET['data']." "; echo $_GET['mese']." "; echo $_GET['anno']." ";?>[/PHP]poi farò la parte del db.
grazie mille ciao!
-
Ok,
ma per piacere fai un array anche su questa ultima parte di codice!Basta che copi quello che ho fatto io sopra.
In generale, pensa sempre di avere 100 righe quando scrivi codice, non puoi fare 100 if .. il codice deve essere più pulito posibile
Fammi sapere come lo riscrivi