[ Andreja Dulovic @ 25.05.2004. 22:59 ] @
imam neku petlju, i u njoj mi se iscrtava forma. ta forma poziva neki drugi php fajl kad kliknem na
"submit" koji treba da obradi unete podatke. problem je sto se tu zavrsava tok programa. nikad ne dodje
do druge iteracije petlje. kako da nateram program da nakon sto taj pozvani php fajl obradi podatke, prvi
php (koji ga poziva) nastavi sa svojim iteracijama.


for ($i=1; $1<10; $i++) {

<form name="forma" method="post" action="obrada.php">
...
...
..
</form>


};


dakle, ova petlja mi nikad ne ulzai u drugu iteraciju, vec nakon sto se izvrsi skript "obrada.php", sve
stane. probao sam sa return i die(), ali nece...


hvala,
pozdrav!
[ _owl_ @ 25.05.2004. 23:21 ] @
Kod koji si dao ima da iscrta 10 formi. To sto u action atributu form taga stoji ime nekog skripta znaci da ce se on izvrsiti tek nakon submitovanja forme.
[ Andreja Dulovic @ 26.05.2004. 08:50 ] @
mislim da je najbolje da ja konkretno pitam sta mi tacno treba, nego da pisem svasta...

treba da uradm anketu tako sto ce se coveku redom izbacivati forme, i kad popuni jednu, onda treba da mu izadje druga, i tako dalje. podaci treba da se upisu u mysql nakonsto se klikne na submit.

e sad, problem je sto ja u bazi samo imam polje koje kaze da li je covek popunio anketu (ima ih vise), a ne i koje je sve forme popunio. zato treba da mu u iteracijama izbacim, jednu za drugom forme koje ce on da submituje, sve dok ih ne popuni (formi nema vise od 5).


prva ideja koja mi je pala na pamet je da napisem php koji ce da ima nekoliko if() grananja i koji ce da ispisuje formu koja ce da submituje podatke tom istom fajlu gde ce se na osnovu if() i raznih flegova raditi podaci, ali je tu bio problem kako da iz forme posaljem rezultat funkcije mysql_query() php skriptu. probao sam i sa $GLOBALS, ali nisam uspeo da tu smestim te promenljive..


[ NetworkAdmin @ 26.05.2004. 10:51 ] @
To je prost problem, obicni wizard

Mozes to na vise nacina uraditi recimo dodjes na index.php ucita prvu formu koja ce imati hidden step=0 pa onda kad submitujes fecimo if ili case ili kako ti vec odgovara napravi upis u bazu pa se vrati na index.php ali sa $step=1 za koji ce praviti drugu formu isto if ili case uslov... i sver tako do kraja

Najlakse je hidden polje ubaciti i to radi super ako nije u pitanju nesto sto ugrozava secirity... mozes to uraditi i sa session taj step... mozes ga i GET staviti isto umjesto u POST...

Eto ti ideja pa razmisljaj.

Ta for petlja nikako ne ide... svako otvaranje php stranice izvrsava skript iz posetka. Ocito si radio neke desktop applications...
[ afwt @ 27.05.2004. 13:32 ] @
Ne bih da cepidlacim, ali napisao si:

for ($i=1; $1<10; $i++) {

umesto:

for ($i=1; $i<10; $i++) {
[ Andreja Dulovic @ 28.05.2004. 08:12 ] @

veliko hvala na odgovoru.

ideja da pozivam skript iz samog sebe mi se i ranije ucinila ok, ali nisam znao kako da submitujem mysql query iz forme samom php skriptu. ako prosledim promenljivu:

$rezultat = mysql_query($query);

skriptu koji ispisuje formu, ne znam kako da tu promenljivu prosledim ponovo tom skriptu zajedno sa rezultatima upisa u formu. probao sam da $rezultat postavim u $_POST, ali nakon poziva sledeceg skripta naredba:

$polje = mysql_fetch_array($rezultat)

mi ispisuje poruku o gresci (neodgovarajuci resource)...



istina je da sam radio desktop i da nemam mnogo iskustva sa PHP-om. ali, i pored toga sam ocekivao da se skript izvrsi iz pocetka. kad bih znao kako da tom php skriptu prosledim validan rezultat upita ($rezultat), mozda bih uspeo da resim problem.

hvala jos jednom.

[ NikolaVeber @ 28.05.2004. 08:23 ] @
Nisam siguran da se mysql_resourceId moze prenositi izmejdu stranica. Moze li?
Probaj da uradis mysql_fetch_array pre submitovanja i rezultat posaljes.
[ bluesman @ 28.05.2004. 11:43 ] @
Ne moze, izmedju ostalog i zbog toga sto se mysql konekcija zatvara na kraju svakog scripta samim tim gubis i sve, prosto receno, linkove ka query results, tako da mozes ti da preneses preko post ili get, ali taj res, cak i ako postoji, vise ne odgovara tvom izvrsenom queriju. Ovo je naravno uprosceno objasnjenje.

Ako bas moras tako - probaj da sacuvas podatke u file, ili prosledi ceo rezultat kao veliki POST (vidi recimo serialize() i unserialize())... Mada mislim da je novi query brzi nego prenos rezultata pa onda parsovanje...

Nego sta tebi tacno treba? Ako hoces wizzard fazon, onda jednostavno u svakom koraku re-postujes iste vrednosti, uz nove koje korisnik unese u tom koraku. Bolje resenje je da, ako vec cuvas u bazu, sacuvas svaku stranu u tabeli koju hoces, a prenosis samo id tog upisa, dok u svakom upisu imas neko polje, recimo "status" pa u njemu upises koji je trenutni korak u wizzardu, ako imas recimo 4 strane, posle svake upises broj te strane, pa tek ako je 4 - onda napises neki status "done" ili nesto slicno.

Ima dosta resenje, samo treba pronaci ono koje tebi odgovara, jer su neka bolja za manje forme, neka za vece...