Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    select variabile per età

    in un form d'iscrizione ad un concorso
    avrei bisogno di far calcolare in base alla data di nascita inserita
    gli anni dell'utente, in base a questo puo' partecipare ad una categoria specifica. es:

    da 18 anni a 28 deve apparire nella scelta della categoria "junior" e "super".
    da 29 a 40 anni deve apparire "senior" e "super".

    in pratica tutti possono scegliere la categoria "super" ma le altre due fasce d'eta o "junior" o "senior"

    ricapitolando:
    l'utente inserisce la data di nascita.
    lo script fa subito il calcolo dell'età.
    se l'età è appartenente alla fascia 18-28
    nel menu a tendina CATEGORIA puo' decidere "junior" o "super"
    se l'età è appartenente alla fascia 29-40
    nel menu a tendina CATEGORIA puo' decidere "senior" o "super"
    se l'età non corrisponde a nessuna delle 2 fascie d'età
    (cioè minore di 18 o maggiore di 40)
    lo script mi restiuisce una variabile che gestiro' io come errore e non potrà isciversi.

    spero di essermi spiegato bene.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    lo script mi restiuisce una variabile che gestiro' io come errore e non potrà isciversi
    Non mi e' chiaro come vuoi trattare il problema... per ora posto una funzione che calcola l'eta'

    codice:
    function eta(strData) {
    // la data deve essere nel formato gg/mm/aaaa
    	pp = strData.split("/");
    	nascita = new Date(pp[2],pp[1]-1,pp[0])
    	nn = nascita.getFullYear()+nascita.getMonth()/100+nascita.getDate()/10000
    	oggi = new Date()
    	oo = oggi.getFullYear()+oggi.getMonth()/100+oggi.getDate()/10000
    	return parseInt(oo-nn,10);
    }
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    l'età è in formato gg/mm/aaaa e viene inserita tramite campo text in un form. come faccio a stampare l'età? come faccio a richiamare questa funzione?

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Noto che hai qualche carenza in scripting... a questo livello se l'interesse prioritario e' risolvere il problema converrebbe avere la pagina da modificare, iniziare qui un corso di javascript non mi sembra opportuno.

    Perdona il modo forse troppo brusco cerco di essere utile nonostante il mio ridotto tempo libero disponibile

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    non chiedevo un corso di javascript comunque...
    volevo capire come si richiama la funzione che hai postato da una azione associata ad un evento.

    sono partito esponendo il problema in maniera troppo elementare perchè è faticoso spiegare esattamente cosa voglio da questo script.
    forse è più un problema di italiano che di "carenza".

    anche se fosse di carenza nessuno è tenuto a rispondere se non ha tempo, voglia o semplicemente se non se la sente a spiegare ad un fagiano come me di javascript o di script in generale.

    da anni son qui per imparare e da nessuna parte c'è scritto che chi ha carenza di conoscenze deve perdonare il non aiuto.

    ci sono state persone che mi hanno aiutato a capire cos'è una variabile in questo forum e anche grazie agli utenti di questo forum
    ora posso postare problemi più complicati. forse grazie anche a te.
    nessun problema comunque. non c'era bisogno di giustificarsi.

    grazie dello script dell'età quello mi è stato veramente utile sicuramente arrivero' ad una soluzione.
    il secondo post mi scoraggia dal trovarla pero' ..ma ci arrivero' comunque. e grazie.

  6. #6
    codice:
      <html>
    
        <head>
          <script type="text/javascript" language="JavaScript">
          <!--
    
            function generateCategory( __hForm )
            {
              var _bornDate  = __hForm.elements["date"].value;
              var _dateToken = _bornDate.match( /^(\d{2})\/(\d{2})\/(\d{4})$/ );
    
              if ( _dateToken == null ||
                   _dateToken[1] < 01   || _dateToken[1] > 31 ||
                   _dateToken[2] < 01   || _dateToken[2] > 12 ||   
                   _dateToken[3] < 1900 || _dateToken[3] > 2005 ) 
              {
                __hForm.elements["category"].options.length = 0;
                return false;
              }
    
              else {
                var _curDate = new Date( );
                var _typDate = new Date( _dateToken[3], _dateToken[2]-1, _dateToken[1] );
                var _gotAge  = parseInt( (_curDate.getFullYear() + _curDate.getMonth() / 100 + _curDate.getDate() / 10000 ) -
                                         (_typDate.getFullYear() + _typDate.getMonth() / 100 + _typDate.getDate() / 10000 ) );
    
    
                if ( _gotAge >= 18 && _gotAge <= 28 ) {
                  with ( __hForm.elements["category"] )
                  {
                    options.length = 0;
                    options[options.length] = new Option( "Membro Junior", "junior", false, false );
                    options[options.length] = new Option( "Membro Super", "super", false, false );
                  }
    
                  return true;
                }
    
                else if ( _gotAge >= 29 && _gotAge <= 40 ) {
                  with ( __hForm.elements["category"] )
                  {
                    options.length = 0;
                    options[options.length] = new Option( "Membro Senior", "senior", false, false );
                    options[options.length] = new Option( "Membro Super", "super", false, false );
                  }
    
                  return true;
                }
    
                else {
                  with ( __hForm.elements["category"] )
                  {
                    options.length = 0;
                    options[options.length] = new Option( "Non puoi diventare membro", "invalid", false, false );
                  }
    
                  return false;
                }
              }
            }
    
          //-->
          </script>
        </head>
    
        <body>
    
          <form>
            Data:
    
            <input type="text" name="date" value="gg/mm/aaaa" maxlength="10" onkeyup="generateCategory( this.form );" />
    
    
    
            Categoria:
    
            <select name="category"></select>
          </form>
    
        </body>
    
      </html>
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  7. #7
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    dinamic+ sei un angelo caduto dal cielo.
    provato e funziona, sembrava una cosa impossibile.
    ora mi studio il codice e lo adatto.
    non ci posso credere..... :rollo:

  8. #8
    Originariamente inviato da Base
    dinamic+ sei un angelo caduto dal cielo.
    provato e funziona, sembrava una cosa impossibile.
    ora mi studio il codice e lo adatto.
    non ci posso credere..... :rollo:
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.