HTML form & PHP

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ä?
6587
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Laita siihen dokumentti.php:hen redirecti takaisin form-tiedostoon näin:

header("Location: form.html");

Äänestä
  • Tai vaihtoehtoisesti siirrät sen formin siihen dokumentti.php sivuun, näin voit jättää kenttiin syötetyt arvotkin.

    Äänestä

  • ------------- kirjoitti:

    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ä :)

    Äänestä

  • Nyypie kirjoitti:

    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.

    Äänestä

  • ------------- kirjoitti:

    *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.

    Äänestä

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?

Äänestä

Kommentoi aloitusta


Nyypie kirjoitti:

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ä?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu