Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Pudotusvalikko-ongelma

Tinna [10.12.2005 02:55:35]

#

Onkohan mahdollista tehdä sellaista pudotusvalikkoa, että kun pudotusvalikon avaa, siellä on väliotsikkona Tammikuu ja sen alla valittavat asiat, sitten Helmikuu ja sen alla valittavat asiat jne.?

Entä kuinka helppoa on saada pudotuvalikko "näyttämään" sitä kuukautta, missä ollaan menossa? Esim. maaliskuussa pudotusvalikko avautuisi maaliskuun kohdalle.

ajv [10.12.2005 10:42:11]

#

<select>-kenttä ei suoranaisesti tue mitään väli-otsikoita, mutta voi ne sinne piilottaa tavallisiksi optioiksikin. Heh, harvoinpa täältä suoraan valmista koodia saa, mutta nyt kävi tuuri, sillä ei sattunut olemaan parempaakaan tekemistä. Tässä pieni esimerkki:

<?php
$kuukaudet = array(
   'tammi' => array('asia1', 'asia2'),
   'helmi' => array('asia1', 'asia2'),
   'maalis' => array('asia1', 'asia2'),
   'huhti' => array('asia1', 'asia2'),
   'touko' => array('asia1', 'asia2'),
   'kesä' => array('asia1', 'asia2'),
   'heinä' => array('asia1', 'asia2'),
   'elo' => array('asia1', 'asia2'),
   'syys' => array('asia1', 'asia2'),
   'loka' => array('asia1', 'asia2'),
   'marras' => array('asia1', 'asia2'),
   'joulu' => array('asia1', 'asia2')
);
$nyt = date('n'); // kuluva kuukausi
$i = 1; //laskuri silmukkaan

echo '<form><select name="testi">';
// loopataan kuukaudet...
foreach($kuukaudet as $kk => $valinnat){

   $selected = $i == $nyt ? 'selected' : ''; // jos ollaan kuluvan kuukauden kohdalla...

   echo '<option style="font-weight: bold;" value="'.$kk.'" '.$selected.'>- - - '.$kk.'kuu - - -</option>';

   // ... ja loopataan kunkin kuukauden alivalinnat
   foreach($valinnat as $valinta){
      echo '<option value="'.$valinta.'">'.$valinta.'</option>';
   }

   $i++;
}
echo '</select></form>';
?>

Olga [10.12.2005 14:28:53]

#

en nyt ihan ulkoa muista syntaksia, mutta optgroup on ratkaisu.

Tempfile [10.12.2005 14:34:19]

#

Tuolla on selvä esimerkki.

ajv [10.12.2005 20:07:21]

#

Ah, taas oppi uuden asian. No ainakin tuo on helppo soveltaa tuohon esimerkkiini.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta