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
- Funktio-osoittimet
- Validointi funktiolla - asettaminen ja kutsuminen
- Virheiden näyttäminen
Laajennetaan lomake-elementtien valikoimaa:
- Valmiiden lomake-elementti-luokkien käyttäminen:
- Perintä (lyhyesti)
- Lomake-elementti-ryhmät
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.

