Olen miettinyt, että onko mahdollista tehdä lomaketta, joka lisää ölähetysö nappia painaessa lomakkeen sisällön suoraa samalle sivulle hieman alemmaksi. Uskon ettei tuossa ole niinkään haastetta, mutta lomakkeen sisältö (vain yksi laatikko, johon teksti kirjoitetaan) tulisi jakaa erilaisten otsikoiden alle?
Kyseinen tietokanta tulisi virtuaalitallilleni kisojen järjestämistä helpottamaan. Leikitään tällä kertaa, että järjestän vaikka estekisat ja kisoissa on kolme eri luokkaa:
Lk 1. 100cm
Lk 2. 120cm
Lk 3. 150cm
Esimerkkikutsu http://korge.webs.com/toiminta/krj/krj28.htm
Sieltä ei löydy kyseisiä lomakkeita, koska kaikki osallistujat lisätään käsin sähköpostiin tulleista miljoonista viesteistä kopioiden.
Osallistujat saavat osallistua rajatulla hevosmäärällä vaikka kaikkiin luokkiin (max. 5 hevosta/omistaja). Lomakkeella tulee ilmoittaa seuraavat tiedot:
Luokan numero, johon alle listatut hevoset osallistuvat, sekä ratsastaja (ratsastajan tunnus) ja hevosen nimi. Yleinen ilmoitustapa kyseiselle litanjalle on seuraava:
Lk 1.
Heppu (VRL-0000) – Heppa Hoppunen
Heppu (VRL-0000) – Poni Poninen
Lk 2.
Heppu (VRL-0000) – Heppa Hoppunen
Heppu (VRL-0000) – Poni Poninen
Lk 3.
Heppu (VRL-0000) – Rautias Risto
Eli henkilö ilmoittaa jokaisen luokan osallistumisensa eri "luokkaotsikoiden" alle. Lisäksi tietokannan pitäisi tunnistaa, että yhden hevosen nimen voi kirjoittaa max. 2 kertaa ja vain kerran yhden luokkaotsikon alle. Myös 100 osallistujan rajoitus pitäisi olla mahdollista per/luokka.
Voiko jollakin koodilla määrittää, että tietyn "otsikon" alla oleva sisältö lisätään tiettyyn kohtaan, vai onko luotava esimerkiksi eri lomakelaatikot jokaiselle luokalle (se olisi ongelmallista, sillä luokkia voi olla vaikkapa 12). Lisäksi lisättyä sisältöä pitäisi pystyä poistamaan.
Kuten ehkä huomaatte, en ole mikään ohjelmoija-hirmu, hyvä kun edes olen tajunnut miten php-koodia yleensä muodostetaan. Eli helpointa olisi varmaankin joku kädestä pitäen -opastus tai vaikkapa linkki jollekkin sivulle mistä löytyisi sopiva koodi käyttööni. Kiitos tuhannesti sille, joka pystyy minua auttamaan :)
Jos et tajunnut mitä tarkoitin, kysy!
Olisiko ajax vastaus kysymykseesi?
ja sitten kun vielä kerrot tälle tyhmälle, että mikä/mitä se on, miten se eroaa esim. php:sta ja mitä se vaatii sivutilalta (kohta itse googlailemaan, nyt kuitenkin kännykällä)?
// löysinkin ohjelmointiputkan oman oppaan helposti parilla klikkauksella (yleensä kännykkäni simahtaa pidemmän selaamisen jälkeen), illemmalla sitten tarkemmin sitä tuijottamaan. Voin kyllä melkein luvata etten pysty sitä tarpeeksi sisäistämään, joten enköhän tarvitse varsinaisessa toteutuksessakin apua :)
Wikipedia kirjoitti:
Ajax (akronyymi sanoista Asynchronous JavaScript And XML) on joukko web-sovelluskehityksen tekniikoita, joiden avulla web-sovelluksista voi tehdä vuorovaikutteisempia. Alkuperäisessä merkityksessään AJAX:lla on alun perin viitattu tekniikkaan, jossa verkkosivulla JavaScript:llä asynkronisesti tehtävistä HTTP-pyynnöistä palautetaan XML-merkkausta. Nykyisin Ajax-tekniikoilla viitataan yleisesti samankaltaiseen toimintatapaan: Ajaxissa selainohjelma vaihtaa pieniä määriä dataa palvelimen kanssa taustalla niin, ettei koko verkkosivua tarvitse ladata uudelleen joka kerta käyttäjän tehdessä muutoksen [1]. Tekniikan päämääränä on siis lisätä verkkopalvelun vuorovaikutteisuutta, nopeutta ja käytettävyyttä.
macrolle kiitokset, tuokin auttoi :)
Teknkik kirjoitti:
Olisiko ajax vastaus kysymykseesi?
En käyttäisi ajaxia tuossa tilanteessa, koska siitä ei ole tässä tapauksessa oikeastaan mitään hyötyä ja koska se lisää tarvittavan koodin määrää aika paljon.
AJAXilla saataisiin aikaan sulavampi käyttäjäkokemus, mutta se on vain mukava lisä taustalla pyörivälle tallennussysteemille. Sanoisin, että ilman aiempaa kokemusta verkkopalveluiden toteuttamista voi olla iso projekti edessä, mutta jos aika ja innostus riittää, niin tutustu ihmeessä Putkan PHP- ja tietokantaoppaisiin ja kysy neuvoa ongelmatilanteissa.
Kaiken tiedon syöttäminen yhteen tekstilaatikkoon on useimmissa tapauksissa tuhoon tuomittu yritys. Ei ole mitään takeita, että käyttäjä syöttäisi tiedon edes suunnilleen oikeassa muodossa.
Erillisten laatikoiden tekeminen ei ole temppu eikä mikään, jos osaa kunnolla PHP:tä. Kuvauksesi perusteella järkevä muoto lomakkeelle voisi olla seuraava:
<form action="lahetys.php" method="post"> <fieldset> <legend>Heppa 1</legend> <select name="heppa[1][luokka]"> <option value="1">Lk 1</option> <option value="2">Lk 2</option> <option value="3">Lk 3</option> </select> <input type="text" name="heppa[1][ratsastaja]" /> <input type="text" name="heppa[1][tunnus]" /> <input type="text" name="heppa[1][hevonen]" /> </fieldset> <!-- Ja sama muille. --> </form>
Lomakkeen voisi käsitellä tähän tapaan:
Kiitos kaikille vastanneille :) Eiköhän tässä ole taas edessä googlailu ja ahkera opetteleminen ja harjoitteleminen. Edelleen jos joku vaan innostuu minua työssä auttamaan niin jotain minimalista korvausta on mahdollista saada :)
Olisiko tarkoitus luoda yleiskäyttöinen lomake, jolla voidaan kysellä osallistujatiedot kilpailuun? Tarkoitan yleiskäyttöisellä lomaketta, jota voisi käyttää kaikkien järjestettävien kilpailuiden osanottajatietojen kyselyyn, ei pelkästään yhden.
Poimin ensimmäisestä viestistäsi muutamia käsitteitä:
merlin kirjoitti:
... estekisat... kisoissa... luokkaa... Osallistujat... hevosta... omistaja... ratsastaja (ratsastajan tunnus) ja hevosen nimi...
Jos tietokantaa lähtee tekemään, pitää ensimmäisenä tehdä käsiteanalyysi. Tuossa on jotain asioita poimittuna, mitä tietokannan varmaan pitäisi osata käsitellä/tallentaa.
lainaus:
Voiko jollakin koodilla määrittää, että tietyn "otsikon" alla oleva sisältö lisätään tiettyyn kohtaan, vai onko luotava esimerkiksi eri lomakelaatikot jokaiselle luokalle (se olisi ongelmallista, sillä luokkia voi olla vaikkapa 12). Lisäksi lisättyä sisältöä pitäisi pystyä poistamaan.
Minusta sinun kannattaa tallentaa kilpailun tiedot tietokantaan tai jotenkin muuten ja luoda lomake noiden tietojen perusteella. Tietokannassa pitäisi varmaan olla ainakin kilpailun nimi ja kilpailun luokat.
Metabolixin esimerkkilomake ei ihan vastaa minun käsitystäni esitetystä ongelmasta. Jos oikein ymmärsin, lomakkeella pitäisi pystyä lisäämään jokaiseen luokkaan 5 hevosta, joten olisi loogista luoda jokaiselle luokalle viisi riviä heppoja varten.
<?php // nämä tiedot voitaisiin hakea esim. tietokannasta $kilpailunNimi = 'Estekisa'; $kilpailunLuokat = array( 1 => '100cm', 2 => '120cm', 3 => '150cm' ); ?> <form action="lahetys.php" method="post"> <fieldset> <h2><?php echo $kilpailunNimi; ?></h2> <?php // tulostetaan lomakekentät jokaista luokkaa varten foreach( $kilpailunLuokat as $luokkaNro => $luokkaNimi ) { ?> <h3>Luokka <?php echo $luokkaNro; ?>: <?php echo $luokkaNimi; ?></h3> <table> <thead> <tr> <th>Ratsastaja</th> <th>Tunnus</th> <th>Hevonen</th> </tr> </thead> <tbody> <?php // tulostetaan viisi riviä luokan ilmoittautumisia varten. for ( $riviNro = 0; $riviNro < 5; $riviNro++ ) { ?> <tr> <td><input type="text" name="<?php echo "kisa[$luokkaNro][$riviNro][ratsastaja]" ;?>" /></td> <td><input type="text" name="<?php echo "kisa[$luokkaNro][$riviNro][tunnus]" ;?>" /></td> <td><input type="text" name="<?php echo "kisa[$luokkaNro][$riviNro][hevonen]" ;?>" /></td> </tr> <?php } ?> </tbody> </table> <?php } ?> </fieldset> </form>
Testasin, vieläkö osaan PHP:tä kirjoittaa.. Meni sellaisenaan tulkista läpi. Ajatusvirheitä tuossa tietysti voi olla :-)
Lomakkeen käsittely tapahtuisi samalla idealla kuin Metabolixin esimerkissä. Toki rakenne ei ole sama vaan nyt juurielementti on kisa
, seuraava taso luokka
, jonka alta sitten löytyy luokkaan ilmoitetut kilpailijat.
Oi kiitos :D Tässä jo pääsin jollekkin jyvälle tietokannoista kun ohjelmointiputkan oppaita lueskelin. Tuosta on varmasti paljon apua, kun jotkut pikkuseikat oli vielä kysymysmerkkinä. Katsotaan jos tuon pohjalta saisin jotain keksittyä :DD
Aihe on jo aika vanha, joten et voi enää vastata siihen.