Joomla.it Forum

Componenti per Joomla! => Gestione Form => : van84 04 Jul 2010, 18:11:07

: Correzione automatica giorni di un mese in un form
: van84 04 Jul 2010, 18:11:07
Oi ciao ragazzi, non so come fare per sistemare questa cosa, spero possiate darmi na mano: ho creato un form che contiene tre campi select per selezionare giorno, mese e anno e l'ho impostato in modo che parta sempre dalla data del giorno dopo a quello odierno (questa costruzione grammaticale non mi convince..!! :o); funziona tutto perfettamente, l'unico problema che ho è che ho impostato il campo dei giorni con valori fino a 31, e vorrei quindi sapere come posso procedere per far si che per i mesi che hanno meno giorni il campo dei giorni mostri la scelta solo fino al 30 o al 28 appunto.
Spero di essermi spiegato chiaramente!
Qualcuno sa come posso fare? Ciao
: Re:Correzione automatica giorni di un mese in un form
: andfritz 07 Jul 2010, 12:41:50
potresti creare 4 drop down che terminano con 28 29 30 31 e in base alla scelta del mese visualizzi il drop_giorni. Ricorda di impostare il controllo di febbraio sull'anno.
: Re:Correzione automatica giorni di un mese in un form
: vales 07 Jul 2010, 22:08:41
Suggerisco di usare del codice php per popolare la dropdown che in funzione del mese di ferma al numero giusto.
: Re:Correzione automatica giorni di un mese in un form
: van84 08 Jul 2010, 17:31:45
Vi ringrazio inanto per avermi risposto, documentandomi sia in merito ai 4 dropdown cheall'opzione di popolare i dropdown attraverso php ho trovato anche che si può fare uno script di controllo che verifichi la correttezza della data, così ora ho tre possibilità e essendo un utente base praticament base di php e niubbissimo di javascript non saprei quale scegliere. Continuerò a cercare e proverò a scrivere il codice che mi sembra più fattibile. Aggiorno il post appena riesco a risolvere qualcosa.
Ciao grazie ancora
: Re:Correzione automatica giorni di un mese in un form
: andfritz 08 Jul 2010, 18:19:04
http://forum.joomla.it/index.php/topic,99125.0.html. questo è un link che ti potrebbe servire.....
: Re:Correzione automatica giorni di un mese in un form
: van84 22 Jul 2010, 14:17:14
Ciao ragazzi, purtroppo dopo giorni di smanettamento ancora niente, purtroppo con js sono proprio ignorante, ho provato in tutti i modi sia a creare un codice di controllo della data (ma credo di sbagliare proprio a livello di comandi), che a modificare il codice che allego (è l'originale: ho provato a modificarlo a logica in vari punti ma non ottengo niente; non capisco come faccio ad impostare vari campi a comparsa, che a seconda dell'opzione scelta nel primo dropdown ne visualizzino uno indicato..), ma niente  >:(. Io proseguo fino a che non riesco a fare questa cosa perchè mi serve assolutamente, se intanto qualcuno ha dei suggerimenti ulteriori bene, altrimenti aggiorni il post a operazione riuscita.
Ciao

[allegato vecchio più di un anno eliminato automaticamente]
: Re:Correzione automatica giorni di un mese in un form
: vales 30 Jul 2010, 18:46:58
Prova un po' se questo codice ti risolve qualcosa.

:
<?php
$giorni_mese
=date("t");
$oggi=date("j");
$anno=date("Y");

// se oggi è l'ultimo del mese incrementa il mese
if ($oggi==$giorni_mese) {
$mese=date("n")+1;
}else{
$mese=date("n");
}


// se oggi è l'ultimo dell'anno
if ($oggi==$giorni_mese && date("n")==12) {
$mese=1;
$anno=date("Y")+1;
}

?>



<div class="form_item">
  <div class="form_element cf_multiholder" style="margin-left:0px!important;">
      <label class="cf_label" style="width: 150px;">Data</label>
    <table cellspacing="0" cellpadding="0" width="95%" title="" class="multi_container">
        <tbody width="100%">
            <tr width="100%">
                <td style="width: auto; vertical-align: middle; text-align: left;">
<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 150px;">giorno</label>
    <select class="cf_inputbox validate-selection" id="select_4" size="1" title=""  name="giorno">
   
<?php
for ($i 1$i <= $giorni_mese$i++) {
    if ((
$oggi+1)==$i) {
    echo 
"<option value=\"".$i."\" selected='selected' >".$i."</option>";
    }else{
    echo 
"<option value=\"".$i."\">".$i."</option>";
    }
}
?>


    </select>
   
  </div>
  <div class="cfclear">&nbsp;</div>
</div>
</td>
<td style="width: auto; vertical-align: middle; text-align: left;">
<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 150px;">mese</label>
    <select class="cf_inputbox validate-selection" id="select_5" size="1" title=""  name="mese">

<option value="1" <?php if ($mese==1){echo "selected='selected'";} ?>>Gennaio</option>
<option value="2" <?php if ($mese==2){echo "selected='selected'";} ?>>Febbraio</option>ù<option value="" <?php if ($mese==1){echo "selected='selected'";} ?>>Gennaio</option>
<option value="3" <?php if ($mese==3){echo "selected='selected'";} ?>>Marzo</option>
<option value="4" <?php if ($mese==4){echo "selected='selected'";} ?>>Aprile</option>
<option value="5" <?php if ($mese==5){echo "selected='selected'";} ?>>Maggio</option>
<option value="6" <?php if ($mese==6){echo "selected='selected'";} ?>>Giugno</option>
<option value="7" <?php if ($mese==7){echo "selected='selected'";} ?>>Luglio</option>
<option value="8" <?php if ($mese==8){echo "selected='selected'";} ?>>Agosto</option>
<option value="9" <?php if ($mese==9){echo "selected='selected'";} ?>>Settembre</option>
<option value="10" <?php if ($mese==10){echo "selected='selected'";} ?>>Ottobre</option>
<option value="11" <?php if ($mese==11){echo "selected='selected'";} ?>>Novembre</option>
<option value="12" <?php if ($mese==12){echo "selected='selected'";} ?>>Dicembre</option>

   
    </select>
   
  </div>
  <div class="cfclear">&nbsp;</div>
</div>
</td>
<td style="width: auto; vertical-align: middle; text-align: left;">
<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 150px;">anno</label>
    <select class="cf_inputbox validate-selection" id="select_6" size="1" title=""  name="anno">
   
<?php
for ($i = -5$i <= 5$i++) {
    if ((
$anno+$i)==$anno) {
    echo 
"<option value=\"".($anno+$i)."\" selected='selected' >".($anno+$i)."</option>";
    }else{
    echo 
"<option value=\"".($anno+$i)."\">".($anno+$i)."</option>";    
    }
}
?>


    </select>
   
  </div>
  <div class="cfclear">&nbsp;</div>
</div>
</td>

            </tr>
        </tbody>
    </table>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>