reload tai jotain

Olen varkannyt pienta tietokantajutskaa PHP MySql ymparistossa. Nyt kun kayttaja muuttaa tietoja (web-sivun formin kautta), tulee nakyviin uusi sivu jossa teksti "onnistui" ja linkki alkuperaiselle sivulle jossa on tietojen listaus.

Haluaisin etta paluu tapahtuisi suoraan alkuperaiselle sivulle, jossa listaus olisi paivitetty ja jossa olisi teksti vaikka ylareunassa etta edellinen toiminto onnistui. Tama teksti voisi vaikka havitakin jonkun ajan kuluttua. (esim. Gmailissa on tallainen "statusteksti" keltaisella pohjalla ylareunassa..)

Miten tama toteutetaan, riittaako PHP:n keinot vai pitaako turvautua esim JavaScriptiin? Miten "kutsun" eli lataan tjsp toisen sivun yhdelta sivulta? Nyt olen tehnyt viritelmia includamalla alkup. sivun uudelle sivulle, mutta tuntuu silta kuin joku napparampikin keino pitaisi olla olemassa. En osaa googlata apua kun en tieda mita hakutermeja kayttaa, eli nekin vinkit taikka linkki riittaa mainiosti.
3356
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat
...

Äänestä

Oletetaan että formi on sivulla index.php

Kun index.php kutsutaan ekan kerran, niin $_POST-muuttujista ei löydy etsimäämme muuttujaa ollenkaan ja siitä just tiedetään, että sivulle tullaan ekaa kertaa.

Käyttäjä saa eteensä täytettävän formin, jonka hidden-kenttään laitetaan nyt se muuttuja formia luotaessa



Käyttäjä täyttää sen formin ja painaa submittia, jolloin myös tuo hidden-kenttä lähtee tietojen mukana. Action kentässä voi taas olla se index.php.

Taas kutsutaan siis index.php, mutta nyt sieltä löytyykin se etsimämme kenttä $_POST['tila']

if($_POST['tila'] == 'lahetys')
{
tiedetaan etta käyttäjä lähetti just tiedot
tarkistetaan arvot ja lisätään tietokantaan
jos kaikki menee ok, niin piirretään taas käyttäjälle se formi "Onnistui"-teksteineen ja laitetaan hidden kentän arvoksi 'talletettu' tai jos tilaa ei enää tarvita, niin ei laiteta koko kenttä enää siihen formiin. Seuraava submit olis taas kuin tultas ekaa kertaa koko sivulle
}

Äänestä

Pitaa ehtia kokeilla pian, mutta eikohan nailla ohjeilla jo onnistu.

Äänestä

Kommentoi aloitusta


lisssu kirjoitti:

Olen varkannyt pienta tietokantajutskaa PHP MySql ymparistossa. Nyt kun kayttaja muuttaa tietoja (web-sivun formin kautta), tulee nakyviin uusi sivu jossa teksti "onnistui" ja linkki alkuperaiselle sivulle jossa on tietojen listaus.

Haluaisin etta paluu tapahtuisi suoraan alkuperaiselle sivulle, jossa listaus olisi paivitetty ja jossa olisi teksti vaikka ylareunassa etta edellinen toiminto onnistui. Tama teksti voisi vaikka havitakin jonkun ajan kuluttua. (esim. Gmailissa on tallainen "statusteksti" keltaisella pohjalla ylareunassa..)

Miten tama toteutetaan, riittaako PHP:n keinot vai pitaako turvautua esim JavaScriptiin? Miten "kutsun" eli lataan tjsp toisen sivun yhdelta sivulta? Nyt olen tehnyt viritelmia includamalla alkup. sivun uudelle sivulle, mutta tuntuu silta kuin joku napparampikin keino pitaisi olla olemassa. En osaa googlata apua kun en tieda mita hakutermeja kayttaa, eli nekin vinkit taikka linkki riittaa mainiosti.

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