bjork Skrevet 17. mai 2009 Del Skrevet 17. mai 2009 (endret) Hei, har et problem med å få vist alle variabler for et produkt som legges i handlekurv. Bruker først et script som henter produkter ut av databasen og lister dem. Action er å legge produktet i handlekurv. Her er utdrag fra scriptet: for ($i=0; $i <$antall; $i++){ $rad=mysql_fetch_row($resultat); echo '<form action="a_legg_i_handlekurv.php" method=post>'; echo '<tr><td>'; echo "Navn"; echo '</td><td>'; echo $rad[1]; echo '</td></tr>'; echo '<tr><td>'; echo "Prod.nr"; echo '</td><td>'; echo $rad[0]; echo '</td></tr>'; echo '<tr><td>'; echo "Pris"; echo '</td><td>'; echo $rad[2]; ... echo '<input type="hidden" name="prodid" value="'; echo $rad[0]; echo '">'; echo '<input type="hidden" name="prodpris" value="'; echo $rad[2]; echo '">'; echo '<input type="hidden" name="prodnavn" value="'; echo $rad[1]; echo '">'; Script for legg_i_handlekurv: $prod=$_POST["prodid"]; $navn=$_POST["prodnavn"]; $pris=$_POST["prodpris"]; $farge=$_POST["prodfarge"]; $storrelse=$_POST["prodstorrelse"]; $antall=$_POST["prodantall"]; echo "Følgende vare er lagt i handlekurven: Produkt nr." .$prod; echo ", Navn: " .$navn ; echo ", Pris: " .$pris ; echo ", Farge: " .$farge ; echo ", Størrelse: " .$storrelse ; echo ", Antall: " .$antall; $_SESSION["prodid$prod"]="true"; $_SESSION["prodnavn$navn"]; $_SESSION["prodpris$pris"]; $_SESSION["prodfarge$farge"]; $_SESSION["prodstorrelse$storrelse"]; $_SESSION["prodantall$antall"]; Vis _handlekurv er: for ($i=0;$i<1000;$i++) { if ($_SESSION["prodid$i"]=="true") echo "Produkt nr. ".$i."</br>"; echo $_SESSION["prodnavn$navn"]; echo $_SESSION["prodpris$pris"]; echo $_SESSION["prodfarge$farge"]; echo $_SESSION["prodstorrelse$storrelse"]; echo $_SESSION["prodantall$antall"]; Da vises kun prodid, ikke de andre variablene. Det er noe feil med måten jeg setter sessionsvariablene og antagelig også den siste løkken. Kan noen hjelpe med dette? Endret 17. mai 2009 av bjork Lenke til kommentar
TeisL Skrevet 17. mai 2009 Del Skrevet 17. mai 2009 Hei, vet ikke om du gjør det, men for at sessionvariablene skal fungere, må du starte sessionen helt øverst, med session_start(). Den siste løkka ser jeg skal kjøre så lenge $i < 1000. Her ville jeg heller kanskje byttet ut 1000 med antall elementer som skal vises. Håper det er litt til hjelp. Lenke til kommentar
bjork Skrevet 17. mai 2009 Forfatter Del Skrevet 17. mai 2009 tusen takk for tilbakemelding. Ja, bruker session start på alle sider, så det er ikke problemet. Å endre antallet til færre, hjelper heller ikke, det er nok ikke der feilen ligger. Men takk for at du svarte. Hei, vet ikke om du gjør det, men for at sessionvariablene skal fungere, må du starte sessionen helt øverst, med session_start(). Den siste løkka ser jeg skal kjøre så lenge $i < 1000. Her ville jeg heller kanskje byttet ut 1000 med antall elementer som skal vises. Håper det er litt til hjelp. Lenke til kommentar
Edorph Skrevet 17. mai 2009 Del Skrevet 17. mai 2009 Du har en litt.. finurlig måte å lagre handlekurvlisten i session på. Husk at du kan fint ha arrays og matriser i session, ikke bare enkeltverdier Uansett, så er problemet de følgende linjene: $_SESSION["prodid$prod"]="true"; $_SESSION["prodnavn$navn"]; $_SESSION["prodpris$pris"]; $_SESSION["prodfarge$farge"]; $_SESSION["prodstorrelse$storrelse"]; $_SESSION["prodantall$antall"]; Den første av disse er ok. Du sier at du vil f.eks. ha en session-variabel som heter "prodid321" som er true hvis produkt 321 er lagt i handlekurven. De neste linjene derimot, gjør ingenting. Du sier, jeg vil ha en session-variabel som heter f.eks. "prodnavnFiskestang", som ikke inneholder noenting! Husk at du må bruke = for å sette verdien til en variabel (akkurat som du gjorde i linje 1). Hvis jeg har forstått tankegangen din riktig, så kan du endre de nevnte linjene til følgende: $_SESSION["prodid$prod"]="true"; $_SESSION["prodnavn$prod"] = $navn; $_SESSION["prodpris$prod"] = $pris; $_SESSION["prodfarge$prod"] = $farge; $_SESSION["prodstorrelse$prod"] = $storrelse; $_SESSION["prodantall$prod"] = $antall; Da må du også endre handlekurv-koden til noe slik: for ($i=0;$i<1000;$i++) { if ($_SESSION["prodid$i"]=="true") { echo "Produkt nr. ".$i."</br>"; echo $_SESSION["prodnavn$i"]; echo $_SESSION["prodpris$i"]; echo $_SESSION["prodfarge$i"]; echo $_SESSION["prodstorrelse$i"]; echo $_SESSION["prodantall$i"]; } } Det er et par andre ting i systemet din som jeg ville satt fingeren på, men jeg mistenker at du kommer til å støte på det selv ganske snart i utviklingen Lenke til kommentar
bjork Skrevet 17. mai 2009 Forfatter Del Skrevet 17. mai 2009 Hei, dette ser ut til å løse problemet mitt så langt! Ja, det ser nok litt finurlig ut når man er i en bratt læringskurve! Man kan slumpe til å finne ut av det, men her har jeg nok misforstått litt, ja. Men dette var til veldig god hjelp! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå