Oon uus tällä foruumilla joten en tiiä yleisiä käytäntöjä yms.(, joten en ole varma onko tämä kysymys oikeassa paikassa)
Miten saan tehtyy sellasen koodin, että..
On 2 radionappia: "Ei" ja "Joo"
Jos Ei:tä painaa, näytälle tulostuu "Hello Hell"
Jos Joo:ta painaa, näytölle tulostuu "Hello World"
Tervetuloa!
Ensinnäkin sulla on varmaan jokin tämännäkoinen lomake tiedostossa lomake.php tai lomake.html:
<form action="tarkista.php" method="post"> <input type="radio" name="valinta" value="Ei">Ei <br> <input type="radio" name="valinta" value="Kyllä">Kyllä <br> <input type="submit" value="Lähetä"> </form>
Sitten tarkista.php tiedostoon tarvit seuraavan koodin:
<?php $valinta = $_POST["valinta"]; //Haetaan lähetetystä lomakkeesta kentän 'valinta' arvo if($valinta == "Kyllä"){ //Jos valinta-muuttujan arvo on 'Kyllä'.. echo "Hello World"; //..Tulostetaan 'Hello World'.. } else { //..muutoin.. echo "Hello Hell"; //..tulostetaan 'Hello Hell'. } ?>
Ps. PHP-aiheiset kysymykset kuuluu nettisivut ja -ohjelmointi -osioon.
Edit. Luku vinkkinä:
https://www.ohjelmointiputka.net/oppaat/opas.
Oletko lukenut keskustelun ohjeet? (Ilmeisesti et, kun otsikossa lukee "PHP Ongelma!") Myös tietoa voi yrittää hakea itse: opasalueella on PHP-opassarja, jossa on yksi osa pelkästään lomakkeista ja siinä aivan erikseen esimerkki juuri tällaisesta.
Kiitos, mutta onko mahdollista että "Hello World" tai "Hello Hell" tulostuisi samalle sivulle heti, kun on painanut nappia?
Metabolix kirjoitti:
Oletko lukenut keskustelun ohjeet? (Ilmeisesti et, kun otsikossa lukee "PHP Ongelma!") Myös tietoa voi yrittää hakea itse: opasalueella on PHP-opassarja, jossa on yksi osa pelkästään lomakkeista ja siinä aivan erikseen esimerkki juuri tällaisesta.
Otsikko on "PHP Ongelma (Radio Nappi)", ja eikö se kerro jo ihan riittävän paljon? Olen pahoillani huolimattomuudesta, mutta en edes tienny koko PHP-opassarjasta tai opasalueesta :(.
Mikäli haluat ettei sivua päivitetä, joudut käyttämään javascriptiä, mutta tässä yksi ratkaisu:
**sivu.php** <form action="sivu.php" method="post"> <input type="radio" name="valinta" value="Ei">Ei <br> <input type="radio" name="valinta" value="Kyllä">Kyllä <br> <input type="submit" value="Lähetä"> </form> <?php $valinta = $_POST["valinta"]; //Haetaan lähetetystä lomakkeesta kentän 'valinta' arvo if($valinta == "Kyllä"){ //Jos valinta-muuttujan arvo on 'Kyllä'.. echo "Hello World"; //..Tulostetaan 'Hello World'.. } else { //..muutoin.. echo "Hello Hell"; //..tulostetaan 'Hello Hell'. } ?>
Eli laitat nuo samaan tiedostoon, jonka pääte täytyy olla php-päätteinen. Ja laitat tuon actionin osoittaman samaan tiedostoon, missä koodi on.
PHP:llä ei voi tulostaa samalle sivulle. PHP suoritetaan palvelimella ensin, ja sivu lähetetään selaimelle vasta sen jälkeen. Kun käyttäjä lähettää lomakkeen taas palvelimelle, PHP:n täytyy tuottaa uusi sivu.
Myös yllä olevassa esimerkissä tulostetaan aina uusi sivu: ensin tulostetaan pelkkä lomake, ja lähetyksen jälkeen tulostetaan lomake ja teksti. Tuollaisessa tavassa on eräitä ongelmia, joista tärkein on se, että aloittelijat eivät ymmärrä, miten sivunlataukset kulkevat, ja toinen on se, että selaimen historia ja refresh-nappi alkavat toimia ärsyttävästi. Jos jotain tuollaista haluaa tehdä, kannattaa minusta käyttää GET-metodia eikä POST-metodia; silloin parametrit näkyvät osoitteessa ja sivuhistoria toimii järkevästi. (Sitä paitsi koodissa pitäisi käyttää isset-tarkistusta, jotta sivulta ei tulisi huomautuksia silloin, kun lomaketta ei ole vielä lähetetty.)
Samaa sivua voi muokata sen sijaan JavaScriptilla.
JuustoPala kirjoitti:
Otsikko on "PHP Ongelma (Radio Nappi)", ja eikö se kerro jo ihan riittävän paljon?
Ei kerro riittävästi. "PHP" on hyvä sana. "Ongelma" on täysin turha sana. "Radio Nappi" on myös olennainen (mutta väärin kirjoitettu), mutta se ei vielä kerro, mitä haluat tehdä tai mikä siinä on ongelmana.
Kiitos kaikista hyvistä vinkeistä (jotka otin talteen ;)), miten tää aihe poistetaan? (Vai tarvitseeko tätä poistaa?)
Miksi aihe tarvitsisi poistaa?
No jos tästä ei haittaakaan ole niin antaa jäädä :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.