| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Indsætte datoer afhængdig af måneden Fra : Kurt G | 
  Dato :  12-02-11 14:52 |  
  |  
 
            Jeg har en formular, hvor man skal indsætte datoer for nogle møder 
 ( http://www.ikasthistorie.dk/NyeMoeder.asp).
Jeg vil gerne have det sådan, at den højeste dato afhænger af, hvilken 
 måned, man har valgt!
 Det kan man, så vidt jeg ved, ikke med hverken ASP eller PHP, men kan det 
 ikke klares med JS?
 Alternativt kunne jeg tænke mig en kalender, hvor man klikker på datoen i 
 rette måned.
 Findes der 'færdige' moduler eller lignende til det?
 Mvh Kurt 
            
              |   |   
            
        
 
            
         
           Jens Peter Karlsen (13-02-2011) 
         
	
            | Kommentar Fra : Jens Peter Karlsen | 
  Dato :  13-02-11 00:57 |  
  |   
            Se inline:
 
 On Sat, 12 Feb 2011 14:51:51 +0100, "Kurt G" <kurt_g@guldbaek.net>
 wrote:
 
 >Jeg vil gerne have det sådan, at den højeste dato afhænger af, hvilken 
 >måned, man har valgt!
 >Det kan man, så vidt jeg ved, ikke med hverken ASP eller PHP, men kan det 
 >ikke klares med JS?
 
 Det kan du let med alle tre. Uddrag månedens nummer (0-11) sammenlign
 med et array du har lavet over dem der har 31 dage. Findes det ikke
 der er der 30 dage medmindre det er Februar (1). For februar skal du
 så lige regne på om det er skudår for at afgøre om der er 28 eller 29
 dage i måneden. Husk også at hele århundreder ikke er skudår med
 mindre de er delelige med 400. Dette kan du formentlig ignorere da det
 ikke er videre sandsynligt at din side stadig findes om 89år.
 
 >Alternativt kunne jeg tænke mig en kalender, hvor man klikker på datoen i 
 >rette måned.
 >Findes der 'færdige' moduler eller lignende til det?
 
 Ja. i alle tilfælde. Søg på Google efter Date picker ASP, JS eller
 PHP.
  
            
             |   |   
            
        
 
            
         
           Kurt G (13-02-2011) 
         
	
            | Kommentar Fra : Kurt G | 
  Dato :  13-02-11 12:22 |  
  |  
 
            "Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev i en meddelelse 
 news:pd6el61g3bui26ma2ud3g8svob4slr8us9@4ax.com...
 > Se inline:
 >
 > On Sat, 12 Feb 2011 14:51:51 +0100, "Kurt G" <kurt_g@guldbaek.net>
 > wrote:
 >
 >>Jeg vil gerne have det sådan, at den højeste dato afhænger af, hvilken
 >>måned, man har valgt!
 >>Det kan man, så vidt jeg ved, ikke med hverken ASP eller PHP, men kan det
 >>ikke klares med JS?
 >
 > Det kan du let med alle tre. Uddrag månedens nummer (0-11) sammenlign
 > med et array du har lavet over dem der har 31 dage. Findes det ikke
 > der er der 30 dage medmindre det er Februar (1). For februar skal du
 > så lige regne på om det er skudår for at afgøre om der er 28 eller 29
 > dage i måneden. Husk også at hele århundreder ikke er skudår med
 > mindre de er delelige med 400. Dette kan du formentlig ignorere da det
 > ikke er videre sandsynligt at din side stadig findes om 89år.
 >
 KLIPPET
 Så er der noget, som jeg har misforstået!
 Hvis man ser på  http://www.ikasthistorie.dk/NyeMoeder.asp, og der under 
 "Vælg måned" trykker sig frem til f.eks februar, så skal rullemenuen "Vælg 
 dato" jo begrænses til 28/29 dage. Det kræver jo, ved ASP og PHP, at 
 serveren bliver aktiveret!
 Hvordan klares det?
 Mvh Kurt 
            
              |   |   
            
        
 
            
         
            Birger Sørensen (13-02-2011) 
         
	
            | Kommentar Fra : Birger Sørensen | 
  Dato :  13-02-11 12:42 |  
  |  
 
            Kurt G forklarede:
 > "Jens Peter Karlsen" <jpkarlsen@mvps.org> skrev i en meddelelse 
 > news:pd6el61g3bui26ma2ud3g8svob4slr8us9@4ax.com...
 >> Se inline:
 >>
 >> On Sat, 12 Feb 2011 14:51:51 +0100, "Kurt G" <kurt_g@guldbaek.net>
 >> wrote:
 >>
 >>>Jeg vil gerne have det sådan, at den højeste dato afhænger af, hvilken
 >>>måned, man har valgt!
 >>>Det kan man, så vidt jeg ved, ikke med hverken ASP eller PHP, men kan det
 >>>ikke klares med JS?
 >>
 >> Det kan du let med alle tre. Uddrag månedens nummer (0-11) sammenlign
 >> med et array du har lavet over dem der har 31 dage. Findes det ikke
 >> der er der 30 dage medmindre det er Februar (1). For februar skal du
 >> så lige regne på om det er skudår for at afgøre om der er 28 eller 29
 >> dage i måneden. Husk også at hele århundreder ikke er skudår med
 >> mindre de er delelige med 400. Dette kan du formentlig ignorere da det
 >> ikke er videre sandsynligt at din side stadig findes om 89år.
 >>
 > KLIPPET
 > Så er der noget, som jeg har misforstået!
 > Hvis man ser på  http://www.ikasthistorie.dk/NyeMoeder.asp, og der under "Vælg 
 > måned" trykker sig frem til f.eks februar, så skal rullemenuen "Vælg dato" jo 
 > begrænses til 28/29 dage. Det kræver jo, ved ASP og PHP, at serveren bliver 
 > aktiveret!
 > Hvordan klares det?
 >
 > Mvh Kurt
 Hvis du vælger februar i dit link, kan du stadig vælge 31...
 Så der foretages ingen check eller justeringer.
 Man kan gøre det med JS, da det er en form. Hvis inkorporeret i en 
 side, hvor eksisterende aftaler allerede vises, kan man bruge AJAX.
 Birger
 -- 
 http://varmeretter.dk - billig, sund og hurtig mad
 http://bbsorensen.dk
            
             |   |   
            
        
 
            
         
             Kurt G (13-02-2011) 
         
	
            | Kommentar Fra : Kurt G | 
  Dato :  13-02-11 17:18 |  
  |  
 
            >> KLIPPET
 >> Så er der noget, som jeg har misforstået!
 >> Hvis man ser på  http://www.ikasthistorie.dk/NyeMoeder.asp, og der under 
 >> "Vælg måned" trykker sig frem til f.eks februar, så skal rullemenuen 
 >> "Vælg dato" jo begrænses til 28/29 dage. Det kræver jo, ved ASP og PHP, 
 >> at serveren bliver aktiveret!
 >> Hvordan klares det?
 >>
 >> Mvh Kurt
 >
 > Hvis du vælger februar i dit link, kan du stadig vælge 31...
 > Så der foretages ingen check eller justeringer.
 > Man kan gøre det med JS, da det er en form. Hvis inkorporeret i en side, 
 > hvor eksisterende aftaler allerede vises, kan man bruge AJAX.
 >
 > Birger
 >
 Men hvordan trigger jeg JS, når jeg har valgt en måned?
 Mvh Kurt 
            
              |   |   
            
        
 
            
         
              Birger Sørensen (13-02-2011) 
         
	
            | Kommentar Fra : Birger Sørensen | 
  Dato :  13-02-11 18:08 |  
  |  
 
            Kurt G forklarede:
 >>> KLIPPET
 >>> Så er der noget, som jeg har misforstået!
 >>> Hvis man ser på  http://www.ikasthistorie.dk/NyeMoeder.asp, og der under 
 >>> "Vælg måned" trykker sig frem til f.eks februar, så skal rullemenuen "Vælg 
 >>> dato" jo begrænses til 28/29 dage. Det kræver jo, ved ASP og PHP, at 
 >>> serveren bliver aktiveret!
 >>> Hvordan klares det?
 >>>
 >>> Mvh Kurt
 >>
 >> Hvis du vælger februar i dit link, kan du stadig vælge 31...
 >> Så der foretages ingen check eller justeringer.
 >> Man kan gøre det med JS, da det er en form. Hvis inkorporeret i en side, 
 >> hvor eksisterende aftaler allerede vises, kan man bruge AJAX.
 >>
 >> Birger
 >>
 > Men hvordan trigger jeg JS, når jeg har valgt en måned?
 > Mvh Kurt
 <select onchange="JSfunktion(...)">
 Birger
 -- 
 http://varmeretter.dk - billig, sund og hurtig mad
 http://bbsorensen.dk
            
             |   |   
            
        
 
            
         
               Kurt G (13-02-2011) 
         
	
            | Kommentar Fra : Kurt G | 
  Dato :  13-02-11 20:37 |  
  |   
            KLIPPET
 >>> Hvis du vælger februar i dit link, kan du stadig vælge 31...
 >>> Så der foretages ingen check eller justeringer.
 >>> Man kan gøre det med JS, da det er en form. Hvis inkorporeret i en side, 
 >>> hvor eksisterende aftaler allerede vises, kan man bruge AJAX.
 >>>
 >>> Birger
 >>>
 >> Men hvordan trigger jeg JS, når jeg har valgt en måned?
 >> Mvh Kurt
 >
 > <select onchange="JSfunktion(...)">
 >
 > Birger
 
 Tak for tip!
 Jeg skal vist til at læse noget på det der JS.
 Mvh Kurt 
 
 
  
            
             |   |   
            
        
 
            
         
               Ronny Olsen (14-02-2011) 
         
	
            | Kommentar Fra : Ronny Olsen | 
  Dato :  14-02-11 19:36 |  
  |  
 
            Hej Kurt,
 som Birger så rigtigt skriver er AJAX en mulighed, men du kan gøre det 
 rent JS mæssigt.
 <script type="text/javascript">
 function isLeapYear(Year){
    if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
       return (true);
    }
    else {
       return (false);
    }
 }
 function Dage(md, Year){
    return [31,(isLeapYear(Year) ? 29:28),31,30,31,30,31,31,30,31,30,31][md];
 }
 function JusterDage(md){
 //  http://www.javascriptkit.com/jsref/select.shtml
   var daglisteelm = document.getElementById("dato");
    var aarvalue = document.getElementById("Aar").value;
    var dage = Dage(md-1, aarvalue);
    // 
 http://www.satya-weblog.com/2008/08/javascript-remove-delete-select-option.html
   // sletter nuvæerende liste
    var lng = daglisteelm.options.length;
    for(i=lng; i>=0; i--){
       daglisteelm.remove(i);
    }
    // opretter listen med de nye værdier
    for(i=1;i<=dage;i++){
       daglisteelm.options[daglisteelm.length]=new Option(i, i);      
    }
      }
      </script>
 <select size="1" name="maaned" onchange="JusterDage(this.value)">
 demo  http://olsensweb.dk/test/ng/selectboxdag.htm
-- 
 Med Venlig Hilsen
 Ronny Olsen
 web:  http://olsensweb.dk
            
             |   |   
            
        
 
            
         
                Birger Sørensen (14-02-2011) 
         
	
            | Kommentar Fra : Birger Sørensen | 
  Dato :  14-02-11 19:49 |  
  |  
 
            Ronny Olsen forklarede den 14-02-2011:
 > Hej Kurt,
 > som Birger så rigtigt skriver er AJAX en mulighed, men du kan gøre det rent 
 > JS mæssigt.
 >
 > <script type="text/javascript">
 > function isLeapYear(Year){
 >    if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
 >       return (true);
 >    }
 >    else {
 >       return (false);
 >    }
 > }
 >
 > function Dage(md, Year){
 >    return [31,(isLeapYear(Year) ? 29:28),31,30,31,30,31,31,30,31,30,31][md];
 > }
 >
 > function JusterDage(md){
 > //  http://www.javascriptkit.com/jsref/select.shtml
>    var daglisteelm = document.getElementById("dato");
 >    var aarvalue = document.getElementById("Aar").value;
 >    var dage = Dage(md-1, aarvalue);
 >
 >    // 
 >  http://www.satya-weblog.com/2008/08/javascript-remove-delete-select-option.html
>    // sletter nuvæerende liste
 >    var lng = daglisteelm.options.length;
 >    for(i=lng; i>=0; i--){
 >       daglisteelm.remove(i);
 >    }
 >    // opretter listen med de nye værdier
 >    for(i=1;i<=dage;i++){
 >       daglisteelm.options[daglisteelm.length]=new Option(i, i);
 >    }
 >      }
 >      </script>
 >
 > <select size="1" name="maaned" onchange="JusterDage(this.value)">
 >
 > demo  http://olsensweb.dk/test/ng/selectboxdag.htm
AJAX var nu mest tænkt som en muliged, hvis man ønsker eksisterende 
 afaler vist for en given måned - så man ikke taster en ny aftale på 
 samme dag en anden allerede eksisterer.
 Hvis det er ligegyldigt, er der ingen grund til at bruge AJAX.
 Ovnestående der fint nok ud.
 Dog skal man lige være opmærksom på, at det vil udføre op til 62 
 gentegninger af skærmen - en for hver gang der fjernes/indsættes en 
 option. Afhængigt af hvad der er på skærmen, er det måske ikke 
 hensigtsmæssigt.
 Man undgår det, ved at definere et document-fragment, som man arbejder 
 på, og indsætter når arbejdet er udført. Det vil kun give een 
 gentegning, og være hurtigere.
 Birger
 -- 
 http://varmeretter.dk - billig, sund og hurtig mad
 http://bbsorensen.dk
            
             |   |   
            
        
 
            
         
                 Ronny Olsen (15-02-2011) 
         
	
            | Kommentar Fra : Ronny Olsen | 
  Dato :  15-02-11 00:04 |  
  |  
 
            Den 14-02-2011 19:49, Birger Sørensen skrev:
  >Man undgår det, ved at definere et document-fragment, som man arbejder 
 på, og indsætter når arbejdet er udført.
 Hej Birger,
 har du nogle ide om hvorfor dette kun virker FØRSTE gang ??
 som om siden er caschet
 function JusterDage(md){
    var fragment = document.createDocumentFragment();
    var daglisteelm = document.getElementById("dato");
    var aarvalue = document.getElementById("Aar").value;
    var dage = Dage(md-1, aarvalue);
            
    // virker kun første gang :(
    var select = document.createElement('select');
    for( var i = 1; i <= dage; i++ ) {
       var option = document.createElement('option');
       option.setAttribute("value",i);
       var text = document.createTextNode(i);
       option.appendChild(text);
       select.appendChild(option);
    }
    fragment.appendChild(select);      
    daglisteelm.parentNode.replaceChild(fragment, daglisteelm);                  
 }
 jeg har ikke sat meta tags, kunne det være årsagen ??
 -- 
 Med Venlig Hilsen
 Ronny Olsen
 web:  http://olsensweb.dk
            
             |   |   
            
        
 
            
         
                  Birger Sørensen (15-02-2011) 
         
	
            | Kommentar Fra : Birger Sørensen | 
  Dato :  15-02-11 00:34 |  
  |  
 
            Ronny Olsen kom med denne ide:
 > Den 14-02-2011 19:49, Birger Sørensen skrev:
 >  >Man undgår det, ved at definere et document-fragment, som man arbejder
 > på, og indsætter når arbejdet er udført.
 >
 > Hej Birger,
 >
 > har du nogle ide om hvorfor dette kun virker FØRSTE gang ??
 > som om siden er caschet
 >
 > function JusterDage(md){
 >    var fragment = document.createDocumentFragment();
 >    var daglisteelm = document.getElementById("dato");
 >    var aarvalue = document.getElementById("Aar").value;
 >    var dage = Dage(md-1, aarvalue);
 >
 >    // virker kun første gang :(
 >    var select = document.createElement('select');
 >    for( var i = 1; i <= dage; i++ ) {
 >       var option = document.createElement('option');
 >       option.setAttribute("value",i);
 >       var text = document.createTextNode(i);
 >       option.appendChild(text);
 >       select.appendChild(option);
 >    }
 >    fragment.appendChild(select);
 >    daglisteelm.parentNode.replaceChild(fragment, daglisteelm);
 > }
 >
 > jeg har ikke sat meta tags, kunne det være årsagen ??
 meta skal vist ikke have indflydelse på scripts. Men det er en god ide 
 at sætte en mets der definerer default script.
 Tror umiddelbart - uden at have nærlæst - problemet er, at du ikke 
 sætter id for den nye select.
 Ved andet gennemløb, får du enten en fejl eller aglisteelm er null. Så 
 fejler din indsættelse sidst.
 Birger
 -- 
 http://varmeretter.dk - billig, sund og hurtig mad
 http://bbsorensen.dk
            
             |   |   
            
        
 
            
         
                   Ronny Olsen (15-02-2011) 
         
	
            | Kommentar Fra : Ronny Olsen | 
  Dato :  15-02-11 00:54 |  
  |  
 
            Den 15-02-2011 00:34, Birger Sørensen skrev:
  > Tror umiddelbart - uden at have nærlæst - problemet er, at du ikke
  > sætter id for den nye select.
 du har fuldstændigt ret
 var select = document.createElement('select');
 select.setAttribute("id", "dato");   <----- denne linje manglede
 for( var i = 1; i <= dage; i++ ) {
 demo opdateret
 -- 
 Med Venlig Hilsen
 Ronny Olsen
 web:  http://olsensweb.dk
            
             |   |   
            
        
 
            
         
                Kurt G (14-02-2011) 
         
	
            | Kommentar Fra : Kurt G | 
  Dato :  14-02-11 22:55 |  
  |  
 
            "Ronny Olsen" <ng@olsensweb.dk> skrev i en meddelelse 
 news:4d597600$0$4039$9f626990@news.telelet.dk...
 > Hej Kurt,
 > som Birger så rigtigt skriver er AJAX en mulighed, men du kan gøre det 
 > rent JS mæssigt.
 >
 > <script type="text/javascript">
 > function isLeapYear(Year){
 > if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
 > return (true);
 > }
 > else {
 > return (false);
 > }
 > }
 >
 > function Dage(md, Year){
 > return [31,(isLeapYear(Year) ? 29:28),31,30,31,30,31,31,30,31,30,31][md];
 > }
 >
 > function JusterDage(md){
 > //  http://www.javascriptkit.com/jsref/select.shtml
> var daglisteelm = document.getElementById("dato");
 > var aarvalue = document.getElementById("Aar").value;
 > var dage = Dage(md-1, aarvalue);
 >
 > // 
 >  http://www.satya-weblog.com/2008/08/javascript-remove-delete-select-option.html
> // sletter nuvæerende liste
 > var lng = daglisteelm.options.length;
 > for(i=lng; i>=0; i--){
 > daglisteelm.remove(i);
 > }
 > // opretter listen med de nye værdier
 > for(i=1;i<=dage;i++){
 > daglisteelm.options[daglisteelm.length]=new Option(i, i); }
 >     }
 >     </script>
 >
 > <select size="1" name="maaned" onchange="JusterDage(this.value)">
 >
 > demo  http://olsensweb.dk/test/ng/selectboxdag.htm
>
 > -- 
 > Med Venlig Hilsen
 > Ronny Olsen
 > web:  http://olsensweb.dk
Det kan jeg ikke lige gennemskue på en studs!
 Jeg vil se nærmere på det og vender nok tilbage!
 Mvh Kurt 
            
              |   |   
            
        
 
            
         
                Kurt G (14-02-2011) 
         
	
            | Kommentar Fra : Kurt G | 
  Dato :  14-02-11 23:10 |  
  |  
 
            KLIPPET
 > demo  http://olsensweb.dk/test/ng/selectboxdag.htm
>
 > -- 
 > Med Venlig Hilsen
 > Ronny Olsen
 > web:  http://olsensweb.dk
Tak for demoen, der kan jeg se, hvordan man får det strikket sammen.
 Men jeg har lige prøvet demoen, og den siger, at der er 28 dage i februar 
 2012!
 Min lommekalender er ikke ening med den!
 Det ligger nok 'i en lille ting'.
 Mvh Kurt 
            
              |   |   
            
        
 
            
         
                 Kurt G (14-02-2011) 
         
	
            | Kommentar Fra : Kurt G | 
  Dato :  14-02-11 23:23 |  
  |  
 
            Det gør den ikke mere!
 Underligt!
 Mvh Kurt
 "Kurt G" <kurt_g@guldbaek.net> skrev i en meddelelse 
 news:4d59a84c$0$23759$14726298@news.sunsite.dk...
 > KLIPPET
 >> demo  http://olsensweb.dk/test/ng/selectboxdag.htm
>>
 >> -- 
 >> Med Venlig Hilsen
 >> Ronny Olsen
 >> web:  http://olsensweb.dk
>
 > Tak for demoen, der kan jeg se, hvordan man får det strikket sammen.
 > Men jeg har lige prøvet demoen, og den siger, at der er 28 dage i februar 
 > 2012!
 > Min lommekalender er ikke ening med den!
 >
 > Det ligger nok 'i en lille ting'.
 >
 > Mvh Kurt
 > 
            
              |   |   
            
        
 
            
         
                  Ronny Olsen (14-02-2011) 
         
	
            | Kommentar Fra : Ronny Olsen | 
  Dato :  14-02-11 23:50 |  
  |  
 
            Den 14-02-2011 23:23, Kurt G skrev:
 > Det gør den ikke mere!
 > Underligt!
 > Mvh Kurt
 Hej Kurt,
 der er IKKE ændret noget ennu, tænker lidt over det som Birger skrev her 
 19:49. (har ikke "leget" med document-fragment før)
 mit bedste bud på fejlen er: du har valgt måned først og derefter år.
 som det er nu SKAL man vælge år først og derefter måned, da jeg ikke har 
 sat nogle event på år
 -- 
 Med Venlig Hilsen
 Ronny Olsen
 web:  http://olsensweb.dk
            
             |   |   
            
        
 
            
         
                   Birger Sørensen (15-02-2011) 
         
	
            | Kommentar Fra : Birger Sørensen | 
  Dato :  15-02-11 00:38 |  
  |  
 
            Ronny Olsen formulerede spørgsmålet:
 > Den 14-02-2011 23:23, Kurt G skrev:
 >> Det gør den ikke mere!
 >> Underligt!
 >> Mvh Kurt
 >
 > Hej Kurt,
 > der er IKKE ændret noget ennu, tænker lidt over det som Birger skrev her 
 > 19:49. (har ikke "leget" med document-fragment før)
 > mit bedste bud på fejlen er: du har valgt måned først og derefter år.
 > som det er nu SKAL man vælge år først og derefter måned, da jeg ikke har sat 
 > nogle event på år
 Hvis du nu lader js-funktionen selv læse måneden fra elementet, som den 
 gør året, kan både måned og år bruge samme onchange....
 Birger
 -- 
 http://varmeretter.dk - billig, sund og hurtig mad
 http://bbsorensen.dk
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |