[Risolto] [RISOLTO] link con esclusione div
Re: link con esclusione div
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
- Allegati
-
calendario.rar- (6.77 KiB) Scaricato 20 volte
Re: link con esclusione div
Il motivo è perché inserisci il codice nell'head del documento e quindi viene eseguito prima di caricare i div...tempestaluna ha scritto: Ho provato a fare come mi avevi detto ma non funziona ??? allego i file che stò facendo sperando che possa esserti di aiuto; mi scuso se non ho postato bene il codice è solo che non sono molto brava in materia.
Per quello che devi fare ti consiglio molto piu' PHP o un altro linguaggio lato server (se ne hai la possibilità) piuttosto che javascript, perché fatto così è assai poco efficiente e dipende dal browser che utilizzi (ad esmepio in Internet Explorer non funzionerebbe)...
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
perchè questo codice
Codice: Seleziona tutto
function isTimeToShow(06,01,2009,10){
var giorniPerMese = new Array( '31','28','31','30','31','30','31','31','30','31','30','31');
endDay = parseInt(gg)+parseInt(durata);
endMonth = parseInt(mm);
endYear = parseInt(aaaa);
while( endDay > giorniPerMese[endMonth -1] ){
endDay -= giorniPerMese[endMonth -1];
endMonth++;
if(endMonth > 12){
endMonth = 1;
endYear++;
}
}
var end = Date.parse(endDay +'/'+ endMonth +'/'+ endYear);
var start = Date.parse(gg+'/'+mm+'/'+aaaa);
var now = new Date().getTime();
return (start < now && now < end);
}
for (i=1;i<32;i++){
if( isTimeToShow(i,evento.getMonth()+1,evento.getYear(), 10) ){
id='evento'+i;
document.getElementById(id).style.display = 'none';
}
}
document.getElementById('evento'+div).style.display = 'block';
oDiv = document.getElementById('evento32');
oDiv.style.display='none';
}
e questo invece
Codice: Seleziona tutto
/* Mostra Dati*/
function showFormDati() {
oDiv = document.getElementById('dati');
oDiv.style.display='block';
oDiv = document.getElementById('tformDati');
oDiv.style.display='block';
return false;
}//-->
/* Nascondi Dati*/
function hideFormDati() {
oDiv = document.getElementById('dati');
oDiv.style.display='none';
return false;
}//-->
che differenza c'è?
Re: link con esclusione div
La differenza sta probabilmente nel fatto che quello del form l'hai collegato ad un link o all'evento onlick di qualche elemento...tempestaluna ha scritto: in effetti hai ragione il codice che utilizzo per aprire e nascondere i div del calendario e quindi gli eventi del mio calendario non funziona eppure in un'altra pagina dove ho i moduli di un form non mi da errore e mi fa aprire e nascondere i div che voglio io.
perchè questo codice
in explore e altri non funziona:Codice: Seleziona tutto
function isTimeToShow(06,01,2009,10){ var giorniPerMese = new Array( '31','28','31','30','31','30','31','31','30','31','30','31'); endDay = parseInt(gg)+parseInt(durata); endMonth = parseInt(mm); endYear = parseInt(aaaa); while( endDay > giorniPerMese[endMonth -1] ){ endDay -= giorniPerMese[endMonth -1]; endMonth++; if(endMonth > 12){ endMonth = 1; endYear++; } } var end = Date.parse(endDay +'/'+ endMonth +'/'+ endYear); var start = Date.parse(gg+'/'+mm+'/'+aaaa); var now = new Date().getTime(); return (start < now && now < end); } for (i=1;i<32;i++){ if( isTimeToShow(i,evento.getMonth()+1,evento.getYear(), 10) ){ id='evento'+i; document.getElementById(id).style.display = 'none'; } } document.getElementById('evento'+div).style.display = 'block'; oDiv = document.getElementById('evento32'); oDiv.style.display='none'; }
e questo invece
funziona anche su explorer?Codice: Seleziona tutto
/* Mostra Dati*/ function showFormDati() { oDiv = document.getElementById('dati'); oDiv.style.display='block'; oDiv = document.getElementById('tformDati'); oDiv.style.display='block'; return false; }//--> /* Nascondi Dati*/ function hideFormDati() { oDiv = document.getElementById('dati'); oDiv.style.display='none'; return false; }//-->
che differenza c'è?
Per cui viene richiamato dopo aver caricato i form, nel caso del calendario essendo nell'header viene eseguito quando ancora il body è vuoto...
In ogni caso anche il codice dei form su explorer non funzionerà perché explorer non ha il metodo document.getElementById('idElemento') ma devi usare document.all['idElemento']
Una funzione cross-browser può essere:
Codice: Seleziona tutto
function getElemById(id){
if(document.getElementById){//Firefox, Opera, Safari, ...
return document.getElementById(id);
}else{//Internet Explorer
return document.all[id];
}
}Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
Codice: Seleziona tutto
function isTimeToShow(06,01,2009,10){
var giorniPerMese = new Array( '31','28','31','30','31','30','31','31','30','31','30','31');
endDay = parseInt(gg)+parseInt(durata);
endMonth = parseInt(mm);
endYear = parseInt(aaaa);
while( endDay > giorniPerMese[endMonth -1] ){
endDay -= giorniPerMese[endMonth -1];
endMonth++;
if(endMonth > 12){
endMonth = 1;
endYear++;
}
}
var end = Date.parse(endDay +'/'+ endMonth +'/'+ endYear);
var start = Date.parse(gg+'/'+mm+'/'+aaaa);
var now = new Date().getTime();
return (start < now && now < end);
}
for (i=1;i<32;i++){
if( isTimeToShow(i,evento.getMonth()+1,evento.getYear(), 10) ){
id='evento'+i;
document.getElementById(id).style.display = 'none';
}
}
document.getElementById('evento'+div).style.display = 'block';
oDiv = document.getElementById('evento32');
oDiv.style.display='none';
}
//-->
Certo mettere un calendario eventi in php potrebbe essere più semplice o in un'altro linguaggio di programmazione ma io non sono brava in questo e l'unica cosa che sono riuscita a trovare è uno script che mostra e nasconde i livelli, certo non sarà il massmo della programmazione ma almeno con questo riesco ad ottenere quello che voglio io.
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
ho collegato anche quest'ultimo script ad un link associandolo all'evento onclick e non funziona.La differenza sta probabilmente nel fatto che quello del form l'hai collegato ad un link o all'evento onlick di qualche elemento...
ho provato il form sul web in pratica ho caricato il file contenente il form e il file contenente questo codice:In ogni caso anche il codice dei form su explorer non funzionerà perché explorer non ha il metodo document.getElementById('idElemento') ma devi usare document.all['idElemento']
Codice: Seleziona tutto
/* Mostra Dati*/
function showFormDati() {
oDiv = document.getElementById('dati');
oDiv.style.display='block';
oDiv = document.getElementById('tformDati');
oDiv.style.display='block';
return false;
}//-->
/* Nascondi Dati*/
function hideFormDati() {
oDiv = document.getElementById('dati');
oDiv.style.display='none';
return false;
}//-->
Re: link con esclusione div
Codice: Seleziona tutto
<html>
<head>
<title>Test isTimeToShow()</title>
<script type="text/javascript"><!--
function isTimeToShow(gg,mm,aaaa,durata){
var giorniPerMese = new Array( '31','28','31','30','31','30','31','31','30','31','30','31');
endDay = parseInt(gg)+parseInt(durata);
endMonth = parseInt(mm);
endYear = parseInt(aaaa);
while( endDay > giorniPerMese[endMonth -1] ){
alert('lol???');
endDay -= giorniPerMese[endMonth -1];
endMonth++;
if(endMonth > 12){
endMonth = 1;
endYear++;
}
}
var start = Date.parse(mm+'/'+gg+'/'+aaaa);
var end = Date.parse(endMonth +'/'+ endDay +'/'+ endYear);
var now = new Date().getTime();
return (start < now && now < end);
}
function getElemById(id){
if(document.getElementById){//Firefox, Opera, Safari, ...
return document.getElementById(id);
}else{//Internet Explorer
return document.all[id];
}
}
function controllaDiv(){
for( i = 1; i<=10; i++){
now = new Date();
if( isTimeToShow(i, now.getMonth()+1,now.getFullYear(),10) ){
getElemById('evento'+i).style.display = "none";
}
}
}
--></script>
</head>
<body onload="controllaDiv()">
<div id="evento1">1</div>
<div id="evento2">2</div>
<div id="evento3">3</div>
<div id="evento4">4</div>
<div id="evento5">5</div>
<div id="evento6">6</div>
<div id="evento7">7</div>
<div id="evento8">8</div>
<div id="evento9">9</div>
<div id="evento10">10</div>
</body>
</html>Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
Codice: Seleziona tutto
<a href="#" onClick="isTimeToShow('25')" class="screenshot" rel="../img/m_rilassante.png" title="relax in agriturismo">LAST MINUTE DIQUESTO MESE</a>Re: link con esclusione div
Guarda bene il codice... Non è così che va usato ma così:tempestaluna ha scritto: ho messo come hai detto tu; e l'ho richiamato così:
ma non funziona... non mi fa vedere nullaCodice: Seleziona tutto
<a href="#" onClick="isTimeToShow('25')" class="screenshot" rel="../img/m_rilassante.png" title="relax in agriturismo">LAST MINUTE DIQUESTO MESE</a>
Codice: Seleziona tutto
isTimeToShow('25', new Date().getMonth()+1,new Date().getFullYear(),10)Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
Re: link con esclusione div
L'ultimo codice che ho postato mostra il div con id eventoX a partire dal giorno X per 10 giorni, se è quello che volevi fare devi solo fare copia/incolla del javascript e aggiungere nel tag body:tempestaluna ha scritto: ok ma non devo mettere un link per richiamarlo? o mi apre alla data prestabilita il div in automatico non ho capito
Codice: Seleziona tutto
...
<body onload="controllaDiv()">
...Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
Codice: Seleziona tutto
<body onload="controllaDiv()">scusa la mia ignoranza ma dove posso modificare il giorno X? l'evento l'ho capito ma il giorno noL'ultimo codice che ho postato mostra il div con id eventoX a partire dal giorno X per 10 giorni,
Re: link con esclusione div
Devi modificare la funzione controllaDiv():tempestaluna ha scritto: ho fatto copia incolla del javascript e ho messo nel tag bodyma non mi fa vedere nulla.Codice: Seleziona tutto
<body onload="controllaDiv()">
scusa la mia ignoranza ma dove posso modificare il giorno X? l'evento l'ho capito ma il giorno noL'ultimo codice che ho postato mostra il div con id eventoX a partire dal giorno X per 10 giorni,
Codice: Seleziona tutto
function controllaDiv(){
for( i = 1; i<=10; i++){
now = new Date();
if( isTimeToShow(i, now.getMonth()+1,now.getFullYear(),10) ){
getElemById('evento'+i).style.display = "none";
}
}
}[(code]Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
Codice: Seleziona tutto
<html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Calendario eventi 2009 agriturismo Il Punto Verde</title>
<link href="../ilpuntoverde/calendario.css" rel="stylesheet" type="text/css" />
<script language="Javascript" type="text/javascript">
<!--
function isTimeToShow(gg,mm,aaaa,durata){
var giorniPerMese = new Array( '31','28','31','30','31','30','31','31','30','31','30','31');
endDay = parseInt(gg)+parseInt(durata);
endMonth = parseInt(mm);
endYear = parseInt(aaaa);
while( endDay > giorniPerMese[endMonth -1] ){
alert('lol???');
endDay -= giorniPerMese[endMonth -1];
endMonth++;
if(endMonth > 12){
endMonth = 1;
endYear++;
}
}
var start = Date.parse(mm+'/'+gg+'/'+aaaa);
var end = Date.parse(endMonth +'/'+ endDay +'/'+ endYear);
var now = new Date().getTime();
return (start < now && now < end);
}
function getElemById(id){
if(document.getElementById){//Firefox, Opera, Safari, ...
return document.getElementById(id);
}else{//Internet Explorer
return document.all[id];
}
}
-->
</script>
<script language="Javascript" src="../ilpuntoverde/jquery.js" type="text/javascript"></script>
<script language="Javascript" src="../ilpuntoverde/main.js" type="text/javascript"></script>
</head>
<body onload="controllaDiv()">
<div id="corpo">
<div id="corpoalto">
<h2 class="w_link">Al momento non sono presenti OFFERTE
LAST MINUTE DIQUESTO MESE</h2>
<script type="text/javascript">
function controllaDiv(){
for( i = 1; i<=10; i++){
now = new Date();
isTimeToShow('25', new Date().getMonth()+1,new Date().getFullYear(),10){
getElemById('evento'+i).style.display = "none";
}
}
</script>
<div id="evento1"></div>
<div id="evento2"></div>
<div id="evento3"></div>
<div id="evento4"></div>
<div id="evento5"></div>
<div id="evento6"></div>
<div id="evento7"></div>
<div id="evento8"></div>
<div id="evento9"></div>
<div id="evento10"></div>
<div id="evento11"></div>
<div id="evento12"></div>
<div id="evento13"></div>
<div id="evento14"></div>
<div id="evento15"></div>
<div id="evento16"></div>
<div id="evento17"></div>
<div id="evento18"></div>
<div id="evento19"></div>
<div id="evento20"></div>
<div id="evento21"></div>
<div id="evento22"></div>
<div id="evento23"></div>
<div id="evento24"></div>
<div id="evento25"></div>
<div id="evento26"></div>
</div>
</div>
</body>
</html>
Re: link con esclusione div
Cerca di spiegare chiaramente quello che vuoi fare...
Senza trascurare alcun particolare.
Ad esempio.
Ho 5 div con id evento1 evento2 evento3 evento4 evento5 e voglio che ognuno sia mostrato solo il giorno del mese che ha numero uguale a quello nell'id e che sia nascosto tutti gli altri giorni.
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
nella pagina che ti ho mandato ho fatto 26 eventi (evento1, evento2, evento3... e così via fino a evento26) sono tutti div nascosti grazie al css; se possibile vorrei poter mostrare per esempio solo il alla data 15/01/2009 tenerlo visibile per 10..20..30 giorni e poi nasconderlo, poi mostrare solo il alla data 01/02/2009 tenerlo visibile per 10..20..30 giorni e poi nasconderlo e così via per tutti i div che ho; in modo da avere:
per esempio per 10 giorni
oggi 14/01/2009 nessun evento disponibile
oggi 15/01/2009 evento5
oggi 16/01/2009 evento5
oggi 17/01/2009 evento5
...
oggi 24/01/2009 evento5
oggi 25/01/2009 evento5
oggi 26/01/2009 nessun evento disponibile
oggi 27/01/2009 nessun evento disponibile
...
oggi 31/01/2009 nessun evento disponibile
oggi 01/02/2009 evento24
oggi 02/02/2009 evento24
ggi 03/02/2009 evento24
...
oggi 09/02/2009 evento24
oggi 10/02/2009 evento24
oggi 11/02/2009 nessun evento disponibile
/*************************/
in un'altra pagina dove ho fatto un calendario in html a tabelle riesco a far vedere il div nascosto che mi interessa con questo script in cui ho inserito anche la parte di explorer che mi avevi detto tu (spero di averla inserita bene) e provandolo su explorer 7.0, firefox 2.0 e safari funziona bene; mostra e nasconde i div cliccando su un link in questo caso i div con id="eventoX" che ho utilizzato sono 32 quindi in questa pagina ci sono 32 eventi:
Codice: Seleziona tutto
function nascondi(div){
for (i=1;i<32;i++){
id='evento'+i;
document.getElementById(id).style.display = 'none';
}
document.getElementById('evento'+div).style.display = 'block';
oDiv = document.getElementById('evento32');
oDiv.style.display='none';
}
function getElemById(id){
if(document.getElementById){//Firefox, Opera, Safari, ...
return document.getElementById(id);
}else{//Internet Explorer
return document.all[id];
}
}
Spero di essere stata un po' più chiara adesso.
Re: link con esclusione div
Codice: Seleziona tutto
<html>
<head>
<title>Esempio calendario</title>
<script type="text/javascript"><!--
eventiDaCaricare = new Array(
//Descrizione
//Ogni riga deve essere così formata:
// ["numero del div", "data di inizio", "data di fine"]
//NB. Le date sono nella forma MESE / GIORNO / ANNO
//Es. Mostrare il div evento1 a partire dal 1 gennaio 2009 fino al 21 gennaio 2009
["1", "01/01/2009", "01/21/2009" ],
["2", "01/10/2009", "01/21/2009" ],
["3", "01/01/2009", "01/21/2009" ],
["4", "01/10/2009", "01/21/2009" ],
["5", "01/01/2009", "01/21/2009" ],
["6", "01/10/2009", "01/21/2009" ],
["7", "01/01/2009", "01/21/2009" ],
["8", "01/10/2009", "01/21/2009" ],
["9", "01/01/2009", "01/21/2009" ],
["10", "01/10/2009", "01/21/2009" ]
);
function isTimeToShow(dataInizio, dataFine){
inizio = Date.parse(dataInizio);
fine = Date.parse(dataFine);
adesso = new Date().getTime();
return inizio <= adesso && adesso <= fine;
}
function getElemById(id){
if(document.getElementById){//Firefox, Opera, Safari, ...
return document.getElementById(id);
}else{//Internet Explorer
return document.all[id];
}
}
function caricaEventi(){
for( i=0; i<eventiDaCaricare.length; i++){
try{
if (isTimeToShow(eventiDaCaricare[i][1],eventiDaCaricare[i][2])){
getElemById("evento"+(i+1)).style.display = "";
}else{
getElemById("evento"+(i+1)).style.display = "none";
}
}catch(eccezione){}
}
}
--></script>
</head>
<body onload="caricaEventi()">
<div id="evento1">1</div>
<div id="evento2">2</div>
<div id="evento3">3</div>
<div id="evento4">4</div>
<div id="evento5">5</div>
<div id="evento6">6</div>
<div id="evento7">7</div>
<div id="evento8">8</div>
<div id="evento9">9</div>
<div id="evento10">10</div>
</body>Codice: Seleziona tutto
eventiDaCaricare = new Array(
//Descrizione
//Ogni riga deve essere così formata:
// ["numero del div", "data di inizio", "data di fine"]
//NB. Le date sono nella forma MESE / GIORNO / ANNO
//Es. Mostrare il div evento1 a partire dal 1 gennaio 2009 fino al 21 gennaio 2009
["1", "01/01/2009", "01/21/2009" ],
["2", "01/10/2009", "01/21/2009" ],
["3", "01/01/2009", "01/21/2009" ],
["4", "01/10/2009", "01/21/2009" ],
["5", "01/01/2009", "01/21/2009" ],
["6", "01/10/2009", "01/21/2009" ],
["7", "01/01/2009", "01/21/2009" ],
["8", "01/10/2009", "01/21/2009" ],
["9", "01/01/2009", "01/21/2009" ],
["10", "01/10/2009", "01/21/2009" ]
);Il primo numero indica il numero del div,
il secondo campo indica la data del primo giorno in cui mostrare l'evento,
il terzo campo indica la data dell'ultimo giorno in cui mostrare l'evento,
Fai attenzione ad usare la notazione americana per le date!!! MESE / GIORNO / ANNO
Un altra accortezza è che ogni riga apparte l'ultima deve terminare con la virgola!
Spero sia quello che cerchi...
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
- tempestaluna
- Prode Principiante
- Messaggi: 44
- Iscrizione: venerdì 2 gennaio 2009, 10:55
- Contatti:
Re: link con esclusione div
l'ho provato anche su explorer 7.0 e safari nonchè firefox 2.0 e funziona bene
grazie grazie grazie!!!!!!
Re: link con esclusione div
Veramente dovresti lasciare evento1, evento2 etc....tempestaluna ha scritto: (rotfl) (good) Bravo!!!! ti ringrazio tanto non sai quanto, per di più hai avuto una pazienza infinita con me; adesso non mi rimane che cambiare l'id dei miei div da id="evento1" a id="1" e funziona tutto!!!!
l'ho provato anche su explorer 7.0 e safari nonchè firefox 2.0 e funziona bene
grazie grazie grazie!!!!!!![]()
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti

