kører ikke funktion

Tags:    javascript

Jeg er ved at programmere en webshop, men er stødt på et problem, jeg håber I kan hjælpe mig med.
Jeg har en <div> med ID'en "kurvFelt" der indeholder antallet af varer (f.eks. "3 varer"). Jeg har lavet en funktion til at opdatere denne div:
Fold kodeboks ind/udKode 

Jeg véd at PHP-delen virker, så den behøver vi ikke tænke på :)
Når jeg loader siden, kører jeg funktionen lige efter <div>'en er indlæst, og det virker.
Men her kommer problemet så:
Når jeg klikker på et billede, skal funktionen tilfoej_vare() køres, og når varen er tilføjet, skal opdaterKurvFelt() køres igen, så jeg lige kan få det nye antal varer vist. tilfoej_vare() virker som den skal, men siden opfører sig som om, den ikke kører opdaterKurvFelt() efter jeg har tilføjet en vare til kurven. Jeg har gjort koden lidt mere simpel, så den er lidt lettere at finde rundt i (skal køres i firefox):
Fold kodeboks ind/udKode 




9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Prøv at tænk lidt over, hvordan browseren håndterer denne linie:
varer = <?php echo mysql_num_rows(mysql_query("SELECT * FROM indkoebskurv")); ?>;

Browseren ser på intet tidspunkt din php-kode, men kun resultatet af den. Derfor vil værdien af varer være den samme, indtil at siden bliver genindlæst.



prøv

Fold kodeboks ind/udJScript kode 


men var det mig der skulle lave en indkøbskruv ville jeg nok vælge og lave det med et array i en session istedet for i sql.. (og evt gemme arrayet i sql hvis man skal kunne gemme listen)

edit:
som stefan siger, hvis du ik genindlæser siden så står der det antal vare som da du loadet siden.. =)

så skal du evt lave en anden side og få ajax til at hente talet på den side.



Indlæg senest redigeret d. 03.04.2009 15:39 af Bruger #3427
Prøv at tænk lidt over, hvordan browseren håndterer denne linie:
varer = <?php echo mysql_num_rows(mysql_query("SELECT * FROM indkoebskurv")); ?>;

Browseren ser på intet tidspunkt din php-kode, men kun resultatet af den. Derfor vil værdien af varer være den samme, indtil at siden bliver genindlæst.

I yay.php tilføjes varen til mysql-tabellen, der undersøges i opdaterKurvFelt() :)



Prøv at tænk lidt over, hvordan browseren håndterer denne linie:
varer = <?php echo mysql_num_rows(mysql_query("SELECT * FROM indkoebskurv")); ?>;

Browseren ser på intet tidspunkt din php-kode, men kun resultatet af den. Derfor vil værdien af varer være den samme, indtil at siden bliver genindlæst.

I yay.php tilføjes varen til mysql-tabellen, der undersøges i opdaterKurvFelt() :)


kræver stadig siden bliver genindlæst.



Prøv at tænk lidt over, hvordan browseren håndterer denne linie:
varer = <?php echo mysql_num_rows(mysql_query("SELECT * FROM indkoebskurv")); ?>;

Browseren ser på intet tidspunkt din php-kode, men kun resultatet af den. Derfor vil værdien af varer være den samme, indtil at siden bliver genindlæst.

I yay.php tilføjes varen til mysql-tabellen, der undersøges i opdaterKurvFelt() :)


kræver stadig siden bliver genindlæst.


Er du sikker på det? Jeg spørger jo efter antallet af varer hvér gang opdaterKurvFelt() køres



nej fordi: <?php echo mysql_num_rows(mysql_query("SELECT * FROM indkoebskurv")); ?>; bliver kun kørt når siden loader, og ik når du kalder functionen. der vil stå ect: 3 istedet for <?php echo mysql_num_rows(mysql_query("SELECT * FROM indkoebskurv")); ?>; når siden er loadet. og der bliver ved med at stå 3 indtil du genindlæser siden.



nej fordi: <?php echo mysql_num_rows(mysql_query("SELECT * FROM indkoebskurv")); ?>; bliver kun kørt når siden loader, og ik når du kalder functionen. der vil stå ect: 3 istedet for <?php echo mysql_num_rows(mysql_query("SELECT * FROM indkoebskurv")); ?>; når siden er loadet. og der bliver ved med at stå 3 indtil du genindlæser siden.

Nåååå ja selvfølgelig :D ups :$
så vil måden at lave det på nok være at lave en php-fil der returnerer antallet af varer, og så spørge efter indholdet af den fil gennem opdaterKurvFelt(). Jeg prøver lige at arbejde med det, så får vi at se om det virker :D



Det virker nu :) efter jeg havde gjort så tallet blev hentet fra en fil, var det dog det samme tal der blev hevet frem igen, men jeg fandt ud af, at fejlen lå i, at den tror, indholdet er det samme fordi det er det samme filnavn. Derfor tilføjede jeg lige en random-værdi til en variabel i filnavnet (getAntalVarer.php?id=random værdi), og så kørte det :)
Mange tak for hjælpen. Jeg har virkelig ikke kunnet gennemskue hvor fejlen var, selvom det jo egentlig var lidt logisk :D Stefan får halvdelen af pointene for at have fundet ud af, hvor jeg havde dummet mig, mens kenneth får den anden halvdel for at få mig til at forstå det :)







t