Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Viestin tulostus valintanapin mukaan

Sivun loppuun

JuustoPala [08.05.2013 15:36:09]

#

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"

dartvaneri [08.05.2013 15:51:53]

#

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.php?tunnus=php_01

Metabolix [08.05.2013 15:53:47]

#

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.

JuustoPala [08.05.2013 16:05:25]

#

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 :(.

dartvaneri [08.05.2013 16:15:31]

#

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.

Metabolix [08.05.2013 16:15:47]

#

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.

JuustoPala [08.05.2013 16:24:57]

#

Kiitos kaikista hyvistä vinkeistä (jotka otin talteen ;)), miten tää aihe poistetaan? (Vai tarvitseeko tätä poistaa?)

Metabolix [08.05.2013 16:26:33]

#

Miksi aihe tarvitsisi poistaa?

JuustoPala [08.05.2013 16:28:07]

#

No jos tästä ei haittaakaan ole niin antaa jäädä :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta