Olen vasta aloittelija PHP:llä, joten yksinkertainen ongelma:
Pystyykö PHP:llä toteuttamaan, että kun käyttäjä painaa nappia, niin muuttujan arvo kasvaa? Selasin oppaat läpi, googletin ja hain koodivinkkejä, mutta en löytänyt vastausta.
Haluaisin toteuttaa niin, että kun käyttäjä painaa nappia, niin hän voisi selata tekstitiedoston rivejä(vain yksi rivi kerrallaan olisi näkyvissä) ilman että sivua pitäisi vaihtaa ja vain tekstisisältö muuttuisi. Vai olisiko tämä helpompi toteuttaa jollain muulla tavalla. Vai pitääkö tähän käyttää javascriptiä tms. tai sitten jotain tietokantoja?
Lyhyesti siis käyttäjän pitäisi pystyä muuttamaan muuttujan $rivi arvoa:
Ei pysty. Kun PHP-koodi on kerran tulkattu, ei muuttuja $rivi ole enää määritelty, koska HTML:ssä ei ole muuttujia. Suosittelisin JavaScriptin tai JQueryn käyttöä.
Pystyypäs, periaatteessa. Päivität vain joka kieroksella selaimen uudelleen ja lisäät muuttujaan, jonka haet osoite riviltä yhden :D En tiedä sitten järkevyydestä.
Ahaa. Ajattelin asiaa väärin, kun koodissa nollataan $rivi-muuttuja. Mutta joo, tietenkin siihen voi sijoittaa sen jälkeen jonkun osoite-riviltä luetun arvon ja kasvattaa yhdellä.
Kuten vaikka näin.
<?php $kierros = $_GET['kierros']; echo "<a href='testi.php?kierros=".($kierros+1)."'>Seuraava</a>"; $tiedosto = file("teksti.txt"); echo $tiedosto[$kierros]; ?>
Edit. Jos kysyjä tarkoitti, että lukea ilman selaimen päivitystä, niin se ei onnistu.
Ok, kiitos vastauksista. Nimenomaan ilman sivun päivitystä olisin halunnut. Ehkä toteutan tämän sitten JavaScriptillä :)
Jos tiedostosta on tarkoitus lukea, niin se ei JS:llä onnistu. Tietysti voit vaikkapa AJAX:lla hakea lennosta nuo tiedot, jolloin sivunlatausta ei tarvita uudelleen.
dartvaneri kirjoitti:
Kuten vaikka näin.
<?php $kierros = $_GET['kierros']; echo "<a href='testi.php?kierros=".($kierros+1)."'>Seuraava</a>"; $tiedosto = file("teksti.txt"); echo $tiedosto[$kierros]; ?>Edit. Jos kysyjä tarkoitti, että lukea ilman selaimen päivitystä, niin se ei onnistu.
On tosin loogisempaa laittaa selain pyytämään haluttua eli seuraavaa riviä, eikä niin että selain pyytää sillä hetkellä näkemäänsä riviä ja palvelinpuoli arpoo, että mitä oikeasti näytetään.
The Alchemist kirjoitti:
On tosin loogisempaa laittaa selain pyytämään haluttua eli seuraavaa riviä, eikä niin että selain pyytää sillä hetkellä näkemäänsä riviä ja palvelinpuoli arpoo, että mitä oikeasti näytetään.
Eikö se sitten niin mene tuossa koodissa: seuraava = kierros + 1 ja näytetään nykyistä kierrosta vastaava rivi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.