kako da prosledim vrednosti na sledeće stranicE

  • 7 odgovora
  • 6.085 pregleda
kako da prosledim vrednosti na sledeće stranicE 18.12.2004. u 22:42 · pre 265 meseci #1
Evo imam ovakav problem.
Imam jednu php stranicu( npr. unos.php) u kojoj unosim potrebne podatke.Zatim te podatke koristim na drugoj stranici (npr obrada.php). E, sad, obrada.php treba da mi prikaže podatke iz MySQL baze, ali da pritom prikazuje prvih n zapisa, pa klikom ne dugme sledećih n zapisa itd.
Kako da prosledim podatke sa unos.php na stranicu koja ce da prikazuje drugih n ili trećih n podataka?
Probao sam sa sesijama, koje rade kod mene na računaru, ali kad ih uploadujem na web server, ne funkcionišu. Da li postoji još neki način za prosleđivanje?
Potpis
Ashes to ashes - dust to dust. Zejtin to ulje - mast to mast.
Re: kako da prosledim vrednosti na sledeće stranicE 19.12.2004. u 00:21 · pre 265 meseci #3
Mozes i sesijama ali je bolje da prenosis varijablu.

Evo najprostijeg primera (kompletnog sistema) a nekada mogu i hint-ovi da pomognu

Imas varijablu $page koja je na pocetku uvek 1 a kasnije $_GET['page'] jer je prenosis kao varijablu, onda racunas koliko imas recorda u toj tabeli (to radis na pocetku strane u svakoj egzekuciji scripta jer je moguce da se broj recorda promeni izmedju 2 egzekucije)

select count(*) from ...

i dobije, na primer $total_records = 475;

ako recimo odlucis da imas to 50 recorda po strani, imas varijablu

$records_per_page = 50;

i racunas

$total_pages = ceil($total_recors / $records_per_page);
znaci dobicemo u primeru ceil(9,5) sto mu daje 10;

i onda poredjas linkove
for ($i = 1; $i <= $total_pages; $i++)
echo "<a href='".$_SERVER['PHP_SELF']."?page=".$i."'>$i</a> ";

dobices linkove poredjanje u fazonu: 1 2 3 4 5 6 7 8 9 10

kada neko klikne na recimo 3 prebacuje se varijabla $_GET['page'] = 3

da bi provalio odakle-dokle treba ra radis query, moras jos malo da racunas:

$from = ($_GET['page']-1) * $records_per_page

znaci, za $page = 1 dobijes $from = 0, za $page = 2, dobijes $from = 50... itd

a onda radis query

SELECT * FROM ... LIMIT $from, $records_per_page

i to bi bilo to - nije uopste komplikovano.

Hint: moras da pazis jer je moguce da imas recimo 3045 strana sto je totalno suludi prikazati kao linkove. Dakle, treba da odlucis i koje strane prikazujes pa mozes da uvedes jos i $display_page_count = 20 pa ce i se uvek prikazivati samo 20 strana ako uradis recimo

$page_start = $page - intval ($display_page_count / 2);
$page_end = $page + intval ($display_page_count / 2);

ali moras da pazis da ne odes u minus, jer za $page = 3 dobices $page_start = -7 sto je glupo, pa rasi proveru

if ($page_start < 1) $page_start=1;
ali onda opet moras da promenis i $page_end = $page_start + $display_page_count

isto tako moras da radis proveru da li je $page_end > $total_pages... alo to mozes verovatno i sam, slicno je kao za start.

// napomena: ovo je pisano ovako iz glave, mozda ima neka slovna greska, da ne bude posle "kod ne radi". Ovo sam napisao ovako opsirno zato sto je dosta ljudi pitalo upravo ovo.
Potpis
Goran Pilipović fka bluesman
Re: kako da prosledim vrednosti na sledeće stranicE 20.12.2004. u 00:43 · pre 265 meseci #4
OK je to, to razumem, nego da preformulišem problem:
na prvoj stranici imam nekoliko vrednosti koje bih hteo da koristim dalje realizovanih pomoću :
<input name="cena" type="text">...
i
<select name="proizvodjac" id="proizvodjac" >
<option value="0">nekitext</option>
...
koje se nalaze u formi čiji je action="druga.php".
e, sad ja to na drugoj stranici pozovem pomoću $_GET["cena"] i sl, i to sve lepo funkcioniše.
Problem se javlja kada pozovem $_SERVER['PHP_SELF'] pomoću linka ili dugmeta.
Dobijam poruku:

Notice: Undefined index: cena in c:\program files\apache\apache\htdocs\druga.php on line 41

kako da mu sačuvam cenu, da mogu posle pozivanja nekog od linkova da je opet koristim?
Potpis
Ashes to ashes - dust to dust. Zejtin to ulje - mast to mast.
Re: kako da prosledim vrednosti na sledeće stranicE 20.12.2004. u 01:36 · pre 265 meseci #5
Posto i nisam bas najnaj razumio pitanje, prvo sto mi pada na pamet jeste da cijenu registrujes kao globalnu :o)

Promenjivu mozes na ostalim stranama da dobijes preko sesija:
session_start();
$_SESSION['cijena'] = $cijena;
i sa ostalih strana je pozivas:
session_start();
$cena = $_SESSION['cijena'];
tj. dostupna ti je svugdje.

Zasto uopste pozivas $_SERVER['PHP_SELF'] kad mozes fino
<form action="<? echo $PHP_SELF?>" method="get">
<input type="text" name="neko_ime">
<input type="submit"></form>

Ups... tek sad procita da ti sesije ne rade na serveru.
Re: kako da prosledim vrednosti na sledeće stranicE 21.12.2004. u 18:34 · pre 265 meseci #7
Da preformulišem:
Trebaju mi vrednosti promenljivih u PHP-u nakon "Refresh"-a, pošto kad refreshujem stranicu, prethodno postavljene vrednosti mi nisu dostupne.
Potpis
Ashes to ashes - dust to dust. Zejtin to ulje - mast to mast.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme