Ongelma on siinä, että kun lomakkeelle palataan niin tiedot katoavat, esim jos jotkin tiedot olivat väärin ja niitä tarvitsee muuttaa, niin ne olisivat valmiina jo siinä mitkä käyttäjä kirjoitti.
Kannattaako tiedot ottaa johonkin muuttujaan väliaikaiseksi ja sieltä palauttaa ne jos niitä tarvitaan tai jos lomake taas oli oikein niin tyhjennetään tiedot muuttujasta? Vai onko ongelmaan jokin helpompi ratkaisu?
hmm... itseasiassa itsekin mietin tätä samaa että miten toteuttaisin. ku vielä pitäis lähettää tieto et mikä virhe tuli.
Miten olisi tietojen käsittely samalla sivulla? Eli formin actioni osoittaisi samaan sivuun, jonka alussa tiedot käsiteltäisiin ja tulostettaisiin virheen tullessa jokin ilmoitus siitä. Jos ei tullut virhettä, tulostetaan onnistumisviesti. Jos tietoja ei annettu tai tapahtui virhe, tulostetaan formit ja virheen tapahtuessa niihin vielä lähetetyt arvot.
no muuten kyllä mutta huono puoli tuossa on se että jos sattuu jostain syystä käyttäjä painamaan F5 ni tiedot esim. lisätään kantaan kahteen kertaan. sen takia lähetän tiedot ihan eri tiedostoon ja käsittelen siellä ja headerilla eteenpäin. vai kuinka estää sitten tämä F5 nappi? entäs onnsituuko javascriptillä joku history.back juttu? mut siihen kun pitäis saada mukaan virheilmoitus. tai edes joku numero. millä hakis sit sen virheen. kertokaa toki...
Tarkistaa vaikka, löytyykö kannasta samanlaista merkintää. Tai jos useampi samanlainen merkintä hyväksytään niin katsotaan viime lähetyksestä kulunut aika ja hylätään tai hyväksytään viesti sen perusteella. JavaScriptiin ei kannata luottaa.
abina kirjoitti:
no muuten kyllä mutta huono puoli tuossa on se että jos sattuu jostain syystä käyttäjä painamaan F5 ni tiedot esim. lisätään kantaan kahteen kertaan.
Edelleenkin lähettäisin ne tiedot samalle sivulle ja jos kaikki meni hyvin, niin sitten ohjaa käyttäjän uudelle sivulle, muuten näytetään se valmiiksi täytetty formi.
En ole itse käytännössä kokeillut, mutta eikös se toimisi tuohon F5-ongelmaan, että otetaan lähetettävän datan id-numero(tai muu yksilöivä tieto) talteen tallennusvaiheessa. esimerkiksi hidden kenttään lomakkeella. Sitten tarkistetaan onko kannassa jo olemassa tämän hidden kentän vastaavaa arvoa. Jos sellainen löytyy jo kannasta, mitään ei tallenneta, muutoin jatketaan normaalisti.
Kuulostaa ihan hyvältä ratkaisulta. Paitsi mitäs jos joku kerkeää kirjoittaa jo kantaan sillä id:llä? Itsellä uudelleenohjaus tietojen ollessa oikeita ei oikein käy, kun sivu on sisällytetty index.php:en keskelle, enkä haluaisi bufferoinnilla kikkailla.
Entä jos on kannassa arvot tyyliin 1,2,3,4? Taidan käyttää duplikaattien hakua kannasta, kun niitä ei saisi minun tapauksessa olla, eikä noita lähetyksiä tule niin kovaa tahtia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.