Viikkotehtävä 4

Tällä viikolla harjoitellaan PHP:n luokkien ja olioiden käyttämistä. Tehtäville yhteiset vaatimukset:

HUOM! Seuraavassa hieman tarkennusta viikkotehtävään tasoille 3 ja 5, jotta vältytään mahdollisilta väärin ymmärryksiltä.

Tehtävässä EI saa hoitaa listaoliolle tehtäviä päivityksiä pelkästään generoimalla aina uusi listaolio jokaisella lomakekierroksella ja tulostamalla sivun lopussa tämän olion sisältö. Tehtävässä sen sijaan PITÄÄ luoda alussa listaolio hidden-kenttien (edellisen kierroksen olion tiedot, jos sellaisia löytyy) perusteella ja sen jälkeen tehdä tarvittaessa muutoksia sille oliolle. Ennen tehtäviä muutoksia tulostetaan olion sisältö ulos, mikä tuottaa edellisen kierroksen listan ja vastaavasti muutosten jälkeen tulostetaan olion sisältö uudelleen ulos, mikä tuottaa siinä vaiheessa meneillään olevan kierroksen listan.

Myöskään olion sisällön tulostuksia EI saa missään vaiheessa hoitaa tulostamalla vain $_REQUEST-taulukon arvoja (silloin ei tulostettaisi oliota, vaan taulukko).

Taso 1

Tehdään lomakkeella käyttöliittymä, jossa käyttäjä voi muodostaa listan. Lista muodostetaan olioiden avulla.

VIHJE: Oliot luodaan $_REQUEST-taulukosta tulevien arvojen perusteella ja tämän jälkeen oliot hoitavatkin kaikki luotuun listaan liittyvät toimenpiteet, esimerkiksi listan tulostamisen.

Mallikuvat:

Oliovaatimukset:

Taso 3

Laajennetaan ykköstason tehtävää siten, että listaa voi myös päivittää lomakkeen avulla. Lue siis ensin läpi ykköstason vaatimukset!

Ykköstasoon verrattuna muutokset lomakkeelle ovat seuraavat:

VIHJE: Koska arvoja ei missään vaiheessa tallenneta esimerkiksi sessioihin, täytyy edellisellä kerralla syötetyt arvot kuljettaa lomakkeella mukana. Tämä onnistuu hidden-kenttien avulla. "Edellisen kierroksen" olion luominen onnistuu siis hidden-kenttien perusteella ja kyseiselle oliolle voi sitten tarvittaessa tehdä muutoksia meneillään olevan kierroksen tiedoilla.

Mallikuvat:

Oliovaatimukset:

Taso 5

Muokataan kolmostason tehtävää ottamaan paremmin huomioon erikoistapaukset listaa päivitettäessä. Tehdään lisäksi uusia ominaisuuksia. Lue ensin läpi ykkös- ja kolmostason vaatimukset, jotta saat selville, mistä tehtävässä on kysymys.

Kolmostasoon verrattuna muutokset toiminnallisuuteen ovat seuraavat:

Oliovaatimukset:

Tarkkoja oliovaatimuksia ykkös- ja kolmostasojen lisäksi ei ole, vaan voi itse päättää, millaisia attribuutteja ja metodeja tarvitsee. Kaikki mahdolliset uudet attribuutit tulee olla yksityisiä (private). Omia uusia metodeita kannattanee tehdä ainakin listan järjestämiselle sekä transaktion toteuttamiselle.

VIHJE: Erilaisista taulukoihin liittyvistä valmiista funktioista on hyötyä useissa kohdissa tehtävää. Nämä funktiot selityksineen löydät PHP.netin sivuilta. Mallivastausta tehdessä tuli tutustuttua mm. array_unique-, array_diff_assoc- ja usort-funktioihin. :-)

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/sovellukset/vt/vt4/
© Antti Ekonoja (anjoekon@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tjlahton@mit.jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2008-03-12 16:52:53
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto