ciao a tutti,
sono alla ricerca di uno script che mi permetta di avere un primo menu a tendina in cui indico 3-4 mesi, alla selezione di uno di questi si dovrebbe aprire un secondo menu con solo le domeniche di quel mese.
spero in voigrazie.
ciao a tutti,
sono alla ricerca di uno script che mi permetta di avere un primo menu a tendina in cui indico 3-4 mesi, alla selezione di uno di questi si dovrebbe aprire un secondo menu con solo le domeniche di quel mese.
spero in voigrazie.
---------------------------
danielix05
allora ti ho fatto uno script per estendere Date con ua funzione che ti ritorna un array con i giorni del mese indicato da month e year (NB month va da 0 = Gennaio a 11 = dicembre) che sono il giorno della settimana indicato (0 = Domenica, 1 = Lunedi, 2 = Martedi... 6 = Sabato)
Un utilizzo potrebbe essere:Codice PHP:
//Questo estende Date con un array accedibile sia in modo statico che non, che contiene
//I giorni del mese
Date.MONTHDAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
Date.prototype.MONTHDAYS = Date.MONTHDAYS;
Date.weekDaysInMonth = function(weekDay, month, year)
{
//Ottengo i giorni per il mese passato
var days = Date.MONTHDAYS[month];
//Questo calcola se year è un anno bisestile, in caso affermativo
if((year % 4 == 0 && year % 100 != 0) || year != 400 == 0)
//Aggiunge uno al numero dei giorni se il mese è febbraio (month == 1)
days = month == 1 ? days + 1 : days;
//L'array per il return
ret = [];
//Oggetto Date per il calcolo del giorno, lo riuso per una questione di memoria
d = new Date();
d.setMonth(month);
d.setYear(year);
//Per ogni giorno del mese
for(i = 1; i <= days; i++)
{
//Setto d con i dati del giorno
d.setDate(i);
//getDay torna il giorno della settimana 0= Domenica .. 6 = Sabato
if(d.getDay() == weekDay){
//Il giorno della settimana è uguale a quello passato, allora aggiungo il giorno all'array
ret.push(i);
}
}
//L'array
return ret;
}
Date.weekDaysInMonth(0, 2, 2009);
Ritorna tutte le domeniche di marzo 2009 mese
I DON'T Double Click!
ma in questo modo io visualizzo gli intervalli di date ma sbaglio o non si crea un menu?
io vorrei che da un menu a tendina scegliessi x es tra
-marzo
-aprile
-maggio
se scelgo marzo, si apre un menu a tendina accanto in cui appaiono le domeniche
- 1
- 8
- 15 ecc...
il file in cui lavoro è purtroppo in asp, pensavo potessimo risolvere con javascript
che ne pensi?
---------------------------
danielix05
certo, quello che ti ho scritto ti risolve il problema di calcolare i giorni dopo aver scelto mese anno e giorno della settimana da visualizzare.
La parte in HTML la puoi fare anche tu, no?
I DON'T Double Click!
ho incontrato questo script che potrebbe fare al caso mio ma non riesco ad aggiungere una 3 e 4 select in modo da ottenere quattro tendine
1- mese dal
2- domeniche del mese dal
3- mese al
4- domeniche del mese al
infine le selectcodice:<script type="text/javascript"> var month = new Object() month["maggio"] = [{value:"2009/05/03", text:"domenica 3"}, {value:"2009/05/10", text:"domenica 10"}, {value:"2009/05/17", text:"domenica 17"}, {value:"2009/05/24", text:"domenica 24"}, {value:"2009/05/31", text:"domenica 31"}]; month["giugno"] = [{value:"2009/05/03", text:"domenica 3"}, {value:"2009/05/10", text:"domenica 10"}, {value:"2009/05/17", text:"domenica 17"}, {value:"2009/05/24", text:"domenica 24"}, {value:"2009/05/31", text:"domenica 31"}]; function setCities(chooser) { var newElem; var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null; var cityChooser = chooser.form.elements["giorno"]; while (cityChooser.options.length) { cityChooser.remove(0); } var choice = chooser.options[chooser.selectedIndex].value; var db = month[choice]; newElem = document.createElement("option"); newElem.text = "dal:"; newElem.value = ""; cityChooser.add(newElem, where); if (choice != "") { for (var i = 0; i < db.length; i++) { newElem = document.createElement("option"); newElem.text = db[i].text; newElem.value = db[i].value; cityChooser.add(newElem, where); } } } </script>
mi potete dare una dritta?codice:<form name="form"> <select name="mese" onchange="setCities(this)"> <option value="" selected="selected">mese</option> <option value="maggio">Maggio</option> <option value="giugno">Giugno</option> <option value="luglio">Luglio</option> <option value="agosto">Agosto</option> <option value="settembre">Settembre</option> </select>_ <select name="giorno"> </select>
grazie![]()
---------------------------
danielix05
---------------------------
danielix05