Minulla on formi, jossa lähetän dataa .php tiedostolle käsittelyyn:
...
Formillani siis lisätään uusi data ja dokumentti.php tallentaa sen fileen. Ongelma on se, että submittaus siirtää fokuksen dokumentti.php:lle eli tyhjä valkea ruutu.
Haluaisin kuitenkin pysyä samalla formilla koko ajan ja "Lisää Tietokantaan" nappula ainoastaan lähettäisi datan käsittelyyn taustalle. Onko tähän joku yksinkertainen keino HTML:ssä vai pitääkö minun tehdä paluu tälle formisivulle dokumentti.php:stä?
...
Formillani siis lisätään uusi data ja dokumentti.php tallentaa sen fileen. Ongelma on se, että submittaus siirtää fokuksen dokumentti.php:lle eli tyhjä valkea ruutu.
Haluaisin kuitenkin pysyä samalla formilla koko ajan ja "Lisää Tietokantaan" nappula ainoastaan lähettäisi datan käsittelyyn taustalle. Onko tähän joku yksinkertainen keino HTML:ssä vai pitääkö minun tehdä paluu tälle formisivulle dokumentti.php:stä?
Vastaukset 6
Vanhimmat
Laita siihen dokumentti.php:hen redirecti takaisin form-tiedostoon näin:
header("Location: form.html");
Tai vaihtoehtoisesti siirrät sen formin siihen dokumentti.php sivuun, näin voit jättää kenttiin syötetyt arvotkin.
Kiitos vastauksista.
Tiesin vastauksen (Location)olevan hyvinkin yksinkertaisen mutta eipä tuo osunut silmiin noita webbihelppejä lueskellessa.
Formin siirtäminen dokumentti.php:n sotii hieman modulaarisen koodin käsitteitä ja Windows ohjelmointia vastaan. Aina on hyvä erottaa käyttöliittymä ja itse ns. engine, joka käsittelee dataa, omiin käsittelijöihin/tiedostoihin.
Taustaltani olen Windows -ohjelmoija mutta parin vuoden koodaamattomuuden jälkeen taidot on pahasti ruosteessa ja kaikenlaisessa webbiohjelmoinnissa olen todellakin nyyppä :)
*Formin siirtäminen dokumentti.php:n sotii hieman modulaarisen koodin käsitteitä ja Windows ohjelmointia vastaan. Aina on hyvä erottaa käyttöliittymä ja itse ns. engine, joka käsittelee dataa, omiin käsittelijöihin/tiedostoihin.*
Oikeessa olet, mutta käyttämällä esim include functiota saat helposti sen formin siihen koodiin, vaikka se onkin omassa tiedostossa. Onhan toi header myös hyvä keino, mikäli ei tarvitse käyttäjän syötettä jättää formiin esim jos syöttää väärää tietoa. headeria käyttäessä joutuisit näin tallentamaan sessioon/kekseihin syötetyt tiedot jotta se välittyisi uudestaan formille, se ei taas ole parhain ratkaisu.
Mikäli ton modulaarisen ajattelun vie tarpeeksi pitkälle, niin pitäisi tehdä template-engine tällöin php ja html ei tarvitsisi sotkea yhtään.
"esim include functiota saat helposti sen formin siihen koodiin, vaikka se onkin omassa tiedostossa. Onhan toi header myös hyvä keino, mikäli ei tarvitse käyttäjän syötettä jättää formiin esim jos syöttää väärää tietoa."
Oma tarpeeni on lähinnä juoksulenkkieni tiedon tallentaminen harjoituspäiväkirjaan. Jos menee väärin, avaan .txt filen ja poistan ylimääräisen tavaran :)
"Mikäli ton modulaarisen ajattelun vie tarpeeksi pitkälle, niin pitäisi tehdä template-engine tällöin php ja html ei tarvitsisi sotkea yhtään. "
No näinhän se on mutta rajansa kaikella :) Kuten yllä mainitsin, oma projektini on hyyyyyyyvin yksinkertainen ja tavoite saada kutiava koodihammas tyydytettyä :) Eli formin liittäminen suoraan dokumentti.php:n kävisi myös vallan mainiosti.
Yksi erittäin kätevä tapa on seuraava (jota voi käyttää muihinkin tapauksiin kuin formin lähettämiseen):
Lisää sivulle
Ja sitten -tagiin atribuutti target="do_action". Muista että kenttien arvoja EI tyhjennetä vaan pitää käyttää JavaScriptiä siihen... jos tämä oli se mitä hait?