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

    [php] select in base alla data

    dovrei tramutare un normale select con circa 10 opzioni in un select che cambia in base a una data, o meglio che toglie un'opzione ogni volta che si raggiunge una determinata data.
    potrei fare tutto con gli if else ma le opzioni sono 12 e mi verrebbe fuori un sacco di codice...mi date una mano? grazie.

    n.b. posso usare volendo anche mysql ?

  2. #2
    Invece di if else usa switch.
    Cmq se non specifichi bene il problema non possiamo sapere quale sarebbe la soluzione migliore nè possiamo sapere se puoi usare un db.

    Cominciamo con domande mirate:
    1) Che opzioni indicano questio select?
    2) Cosa cambia nei select?
    3) Che vuoi memorizzare nel db?

  3. #3
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    [supersaibal]Originariamente inviato da mircov
    Invece di if else usa switch.
    Cmq se non specifichi bene il problema non possiamo sapere quale sarebbe la soluzione migliore nè possiamo sapere se puoi usare un db.

    Cominciamo con domande mirate:
    1) Che opzioni indicano questio select?
    2) Cosa cambia nei select?
    3) Che vuoi memorizzare nel db? [/supersaibal]
    1) Le tappe di un evento:

    codice:
    <select name="tappa" id="tappa">
          <option value="" selected>...</option>
          <option value="Torino">Torino</option>
          <option value="Milano">Milano</option>
          <option value="Taranto">Taranto</option>
              ...
            </select>
    2) devo eliminare dal select la tappa in base ad una data che specifico, in questo modo (nel form di iscrizione all'evento dove è incluso questo select) l'utente non puo' più selezionare la tappa scaduta. ad esempio:
    se la data di scadenza è uguale o maggiore alla data di oggi allora togli l'opzione "Milano".

    3)
    semplicemente i valori del select.

  4. #4
    OK.
    Ora ti faccio solo l'esempio delle città ma il db andrà organizzato in modo diverso. Questo è solo un esempio per farti capire.
    Crei una tabella con il nome della città e la data della tappa.

    Selezioni tutte le città

    nel while controlli la data (come hai detto tu).

    La spiegazione è molto sommaria.
    Io ti consiglio (anzi credo sia d'obbligo) di utilizzare un db.

    Se vuoi una mano per organizzare al meglio il db magari mi contatti in privato e e ti aiuto.
    Oppure apri una discussione sul forum (forse è meglio) e ti aiutiamo tutti. Ciao!

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    ho risolto così

    ho risolto in questo modo.. se ci sono altri modi migliori fatemelo sapere. grazie.

    Codice PHP:
    <?
    $oggi 
    time(); // genero la data di oggi
    echo 'Oggi: '.date('d/m/Y',$oggi).'
    '
    // la visualizzo

    $s_torino mktime(0,0,0,2,25,2005); // scadenza tappa torino
    $s_milano mktime(0,0,0,3,4,2005);// scadenza tappa milano
    $s_roma mktime(0,0,0,3,11,2005);// scadenza tappa roma

    ?>
    <select name="tappa" id="tappa">
    <option value="" selected>...</option>
    <? if($s_torino <= $oggi){ echo ''; } else { echo '<option value="Torino">Torino</option>'; } ?> 
    <? if($s_milano <= $oggi){ echo ''; } else { echo '<option value="Milano">Milano</option>'; } ?>  
    <? if($s_roma <= $oggi){ echo ''; } else { echo '<option value="Roma">Roma</option>'; } ?>
    </select>
    ciao!

  6. #6
    PErchè stampi un select vuoto?
    Non stampare niente!

    Inverti l'if. invece di <= metti >=.

    Cmq hai fatto centro. é il metodo che ti avrei suggerito. Ciao!

  7. #7
    Ho appena letto il msg privato. Ti rispondo qui.

    Per while intendo quello della query.
    In pratica selezioni tutte le città dal db.
    codice:
    while ($row = mysql_fetch_array($result))
         {
            qui inserisci l'if che hai fatto tu
         }

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.