Luokat ja oliot

Jatketaan PHP-luokkien ja -olioiden käsittelyä. Tarkastetaan viikkotehtävän hankalimmat kohdat.

Luentotaltiointi

Ongelmia videon katselussa?

Viikkotehtävä 4

Vastaukset:

Oliot

TextBox-esimerkki

Laajennetaan lomake-elementtien valikoimaa:

Yksittäiset lomake-elementit

Yhteiset metodit:

__construct($name, $value, $label = "")
Luo yksittäisen lomake-elementin (mutta ei vielä tulosta sitä).
  • $name - lomake-elementin name-ominaisuus
  • $value - lomake-elementin value-ominaisuus, oletusarvo
  • $label - lomake-elementin otsikko. Jos tyhjä, niin ei näytetä.
is_valid()
Onko lomake-elementin syöte ok. Riippuu tarkistusfunktiosta.
set_validate_func($func)
Tarkistusfunktion asettaminen (funktion nimi merkkijonona). Kutsuu tätä aina, kun halutaan selvittää virheilmoitukset. Tarkistusfunktio saa parametrikseen sitä kutsuvan lomake-elementti-olion.
set_value($value)
Asettaa value-ominaisuuden.
set_from_request()
Asettaa value-ominaisuuden arvon $_REQUEST-muuttujasta (lomaketiedoista tai urlista).
set_display_errors($bool)
Lisätäänkö virheet lomake-elementtien loppuun pyydettäessä get_string-metodia.
set_name($name)
Asettaa name-ominaisuuden.
set_label($value)
Asettaa lomake-elementin otsikon.
get_value()
Antaa value-ominaisuuden arvon.
get_name()
Antaa lomake-elementin name-ominaisuuden arvon.
get_label()
Antaa lomake-elementin otsikon.
get_error()
Antaa virheilmoituksen. Kutsuu tarkistusfunktiota. Jos kaikki on ok niin palauttaa tyhjän merkkijonon.
get_string()
Antaa lomake-elementin XHTML:nä. Lisää virheet tekstin perään, jos tarkistusfunktio antaa virheilmoituksen.
__toString()
Antaa lomake-elementin XHTML:nä. Kutsuu get_string()-metodia. Voidaan käyttää echo-funktion kanssa seuraavasti:
echo $olio; // tulostaa lomake-elementin
echo "<p>",$olio,"</p>"; // tulostaa lomake-elementin p-elementin sisään

// Seuraava EI TOIMI, koska ei PHP osaa kutsua 
//__toString-funktiota tyypinmuunnoksen takia
echo "<p>$olio</p>"; 
echo "<p>".$olio."</p>"; 

CText

__construct($name, $value, $label, $size="25")
Lisäksi ominaisuus $size, joka määrää tekstilaatikon koon ja maxlength-ominaisuuden.

CSubmit

__construct($name, $value, $label = "")
Tekee lomakkeen lähettämispainikkeen.
is_submitted()
Onko lomake lähetetty ja painettu tätä nappulaa. Tarkistaa tiedon $_REQUEST-muuttujasta.

CCheckbox, CRadio, COption

is_checked()
Onko tämä elementti valittuna.
set_checked()
Aseta valituksiksi.
set_unchecked()
Poistaa valinnan.

Ryhmät

__construct($groupname, $choices, $default = "")
Valintaryhmän luonti.
  • $groupname = Ryhmä nimi, joka tulee name-ominaisuuteen.
  • $choices = Valintavaihtoehdot taulukkona. Taulukon avaimena ovat valintojen otsikot ja arvona value-ominaisuuden arvot. Array( [label1] => value1, [label2] => value2, ...)
  • $default = Oletusarvot, jotka ovat valittuina. Taulukko valittavista indekseistä (0, ..., valintojen määrä - 1) tai yksittäinen indeksi. Tyhjä merkkijono ei valitse mitään oletuksena.
is_valid()
Onko ryhmän valinnat ok. Tarkistus tehdään tarkistusfunktiolla.
set_validate_func($func)
Asettaa ryhmän tarkistusfunktion. Funktio saa parametrina kutsuvan ryhmäolion.
set_display_errors($bool)
Asettaa virheiden näyttämisen päälle.
set_from_request()
Asettaa ryhmän valinnat $_REQUEST-muuttujasta.
get_error()
Tarkistaa onko ryhmässä virheitä. Palauttaa virheilmoituksen tai tyhjän merkkijonon, jos kaikki on ok.
get_chosen_ind()
Palauttaa valittujen kohtien indeksit. Jos valittavia kohtia on vain yksi (radio/select), niin palauttaa vain yhden luvun. Jos valittavia kohtia on useita (checkbox/selectmultiple), niin palauttaa valinnat taulukossa.
get_value()
Palauttaa valittujen kohtien arvot. Jos valittavia kohtia on yksi (radio/select), niin palauttaa sen arvon. Jos valittavia kohtia on useita (checkbox/selectmultiple), niin palauttaa arvot taulukkona. Kutsuu get_chosen_val-funktiota yhteensopivuussyistä.
get_count()
Palauttaa valittujen kohtien määrän.
get_choice_count()
Palauttaa valittavien vaihtoehtojen määrän.
get_label()
Palauttaa valittujen kohtien otsikkotekstit.
get_string()
Palauttaa lomake-elementtiryhmän XHTML-muodossa. Lisää virheilmoitukset, jos display_errors on valittu.

CCheckboxGroup

is_checked($choice_index)
Onko tietty kohta valittuna.

CSelectGroup

__construct($groupname, $choices, $label = "", $default = "")
Luo valintalistan (alasvetovalikko yhdellä valinnalla). Luonti kuten yllä, mutta lisäksi voi määrätä valintalistalle otsikon $label-muuttujassa. Otsikkoa ei tulosteta, ellei sitä ole annettu.

CSelectMultipleGroup

__construct($groupname, $choices, $label = "", $size = 4, $default = "")
Luo valintalistan usealla vaihtoehdolla. Lisäksi voidaan määrätä näytettävien valintojen määrä $size-muuttujalla.
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/sovellukset/luennot/luento10/
© Jukka Mäntylä (jmantyla@mit.jyu.fi)< http://www.iki.fi/jmantyla/>
2006-04-06 11:46:02