Avatar billede daddy Novice
18. marts 2004 - 14:18 Der er 11 kommentarer og
1 løsning

Session/indkøbskurv

Vores første forsøg med sessions..

A = E-handels side med varelister og indkøbskurv.

B = Popup med info om et enkelt produkt.

Når man klikker på "tilføj til kurv" på B, så sender den en variabel til indkøbskurven. Og indholdet af B skifter til indkøbskurven. Men den skal IKKE skifte indhold.

Vi vil gerne at den kan opdatere sessionen med den sendte variabel, UDEN at ændre indholdet af A eller B, før man selv går videre.

Link fra B:

<a href="vis_indkobsvogn.php?new='.$vare.'" target="_top">[Tilføj til indkøbskurv]</a>

Modtages med dette:

  include ('pcb_funk.php');

  $new = $HTTP_GET_VARS['new'];

  if($new) {
    //new item selected
    if(!isset($HTTP_SESSION_VARS['cart'])) {
      $HTTP_SESSION_VARS['cart'] = array();
      $HTTP_SESSION_VARS['items'] = 0;
      $HTTP_SESSION_VARS['total_price'] ='0,00';
    }
    if(isset($HTTP_SESSION_VARS['cart'][$new]))
      $HTTP_SESSION_VARS['cart'][$new]++;
    else
      $HTTP_SESSION_VARS['cart'][$new] = 1;
    $HTTP_SESSION_VARS['total_price'] = calculate_price($HTTP_SESSION_VARS['cart']);
    $HTTP_SESSION_VARS['items'] = calculate_items($HTTP_SESSION_VARS['cart']);

  }
  if(isset($HTTP_POST_VARS['gem'])) { 
    foreach ($HTTP_SESSION_VARS['cart'] as $varenr => $stk) {
      if($HTTP_POST_VARS[$varenr]=='0')
        unset($HTTP_SESSION_VARS['cart'][$varenr]);
      else
        $HTTP_SESSION_VARS['cart'][$varenr] = $HTTP_POST_VARS[$varenr];
    }
    $HTTP_SESSION_VARS['total_price'] = calculate_price($HTTP_SESSION_VARS['cart']);
    $HTTP_SESSION_VARS['items'] = calculate_items($HTTP_SESSION_VARS['cart']);
  }
  echo '<table cellpadding="0" cellspacing="0" border="0"><tr><td><img src="grafik/koebssti_indkoebskurv.gif" width="444" height="15" border="0" alt=""></td></tr></table>';
  if($HTTP_SESSION_VARS['cart']&&array_count_values($HTTP_SESSION_VARS['cart']))
    vis_vogn($HTTP_SESSION_VARS['cart']);
  else {
    echo '<p>Der er ingen varer i indkøbsvognen.</p>';
    echo '<hr />';
  }

Hjæææælp

Hvordan får vi den til det?
Avatar billede avminarm Juniormester
18. marts 2004 - 14:37 #1
i skal nok bruge de nye variabler - læs om dem her: http://www.php.net/manual/en/language.variables.predefined.php
Avatar billede daddy Novice
19. marts 2004 - 14:38 #2
@avminarm

Vi kan ikke helt se hvad det skulle hjælpe os.

Men kan være fordi vi ikke forstår det.
Avatar billede avminarm Juniormester
21. marts 2004 - 12:50 #3
ok - så mp jeg jo uddybed det lidt :o)

f.eks.: "$HTTP_SESSION_VARS['total_price']" hedder i PHP versioner 4.1+ "$_SESSION['total_price']", dvs alle steder hvor der står $HTTP_SESSION_VARS skal der stå $_SESSION og jeres: $HTTP_GET_VARS['new'] skal hedde $_GET['new'] lige som $HTTP_POST_VARS['var'] skal hedde $_POST['var']

jeg håber det hjalp?

desuden skal man jo også øverst i scriptet have startet en session med session_start();
Avatar billede avminarm Juniormester
21. marts 2004 - 12:51 #4
ok - staveplade til mig mp=må & uddybed=uddybe ;o)
Avatar billede daddy Novice
22. marts 2004 - 13:53 #5
@avminarm

Jeg kan ikke lige se hvad det vil gøre ved vores problem, at ændre til de nye variabel navne.

Men vil kikke lidt nærmere på det en af de nærmeste dage.
Avatar billede avminarm Juniormester
22. marts 2004 - 14:20 #6
det det vil gøre er, at så vil scriptet måske virke, for $HTTP_ variablerne virker IKKE mere - det er det det vil gøre ;o)
Avatar billede daddy Novice
22. marts 2004 - 21:27 #7
scriptet virker fint.

Vores problem er at vi ikke kan få den til at skrive til sessionen, når vi står i popupen. Ude at åbne en ny side med indkøbskurven, eller indholdet i popupen skifter til indkøbskurven.

Det er ikke selve scriptet der driller, men måden vi skal gøre det på så, siderne forbliver uændret, og det kun er sessionen der kommer en ændring i, når vi klikker på "tilføj vare" i popupen.
Avatar billede avminarm Juniormester
23. marts 2004 - 08:52 #8
jamen så manglede der jo en beskrivelse af jeres problem! - jeg vidste jo ikke i stod i en popup når sessionen skulle ændres (i skriver at popup er en beskrivelse af en vare?) - nå videre....

i vil altså have sessionen sat, men først vist når man går videre? - hvordan går man videre?
Avatar billede daddy Novice
23. marts 2004 - 09:48 #9
Vi mener nu det er beskrevet i toppen, kan godt være det ikke er godt nok. beklager.

når man står på popupen med en vare beskrivelse, så har man to muligheder. Man kan lukke popupen, og så skal der ikke ske noget. Eller man kan klikke på "tilføj vare" og så er det sessionen skal opdateres, uden at der sker ændringer med popupen.

Linket til "tilføj vare" som også står i toppen er lige nu
<a href="vis_indkobsvogn.php?new='.$vare" target="_top">[Tilføj til indkøbskurv]</a>
vi ved godt det ikke er rigtig, men har forsøg med lidt forskelligt uden at få det til at virke.
Avatar billede avminarm Juniormester
25. marts 2004 - 10:17 #10
Det jeg umiddelbat ville foreslå er at når der klikkes på linket med tilføj til vare kurv står varens id( new i adresselinien og hvis den er i adresselinen tilføjes den til sessionen.

Jeg ved ikke hvordan $vare fremkommer?

f.eks: <a href="vis_indkobsvogn.php?new=<?php echo $vare; ?>" target="_top">[Tilføj til indkøbskurv]</a>

når der så bliver klikket på linket vil man via $HTTP_GET_VARS['new'] kunne hente varens id/navn elle lignende, dvs: på siden kan man:

if(isset($HTTP_GET_VARS['new'])){
  .... tilføj til sessionen
}

dette burde kunne fungere
Avatar billede daddy Novice
08. juni 2004 - 09:46 #11
Vi fik det ikke til at virk med dette, kan være os der er nogen fjolser.

Fik det løst igennem en kammerats kammerat, som nærmest omskrev det hele.
Avatar billede avminarm Juniormester
08. juni 2004 - 10:07 #12
kunne jeg evt se dit nye script - det kunne jo være jeg lærte et eller andet ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester