Gå til innhold

dynamisk produktvisning og sessions


Anbefalte innlegg

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 av bjork
Lenke til kommentar
Videoannonse
Annonse

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

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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...