Avatar billede simm Nybegynder
06. september 2006 - 10:02 Der er 1 kommentar og
1 løsning

Overføre session til ny side

Hej

Jeg er ved at udvikle en shoppingkurv vha. AJAX (www.xajaxproject.org) og wfcart (Webforce cart).

Varene bliver fint tilføjet kurven og der dukker et link op, som brugeren kan klikke på for at komme videre. Men sessionen-bliver ikke overført. Jeg har prøvet at tilføje mit session id til det link der sender brugeren til næste side, men det fungerer ikke.

Jeg kan godt tilføje enkeltelementer, så jeg tror det er linjen
if (in_array($items['vareid'], $_SESSION['session_varer'],1) == false) der ikke fungerer som forventet (se nedenstående kode)

$cart og $_SESSION['session_varer'] burde indeholde det samme.

Det hele virker fint uden ajax, så det er muligvis der problemet ligger. Har i forvejen postet om problemet på xajax's forum
           
[code]
function Tilfoej_vare($vareid, $antal, $varepris, $varenavn, $placeid)
{
    // init variabler
    $_SESSION['kurv'] = '';
    $cart = '';
   
    $cart &= $_SESSION['kurv'];
    if(!is_object($cart)) $cart = new wfCart();       
   
    $sessionparam = session_name() . '=' . session_id();

    global $user;
    global $conf;
 
    $vareid = trim($vareid);
    $antal = trim($antal);
    $varepris = trim($varepris);
    $varenavn = trim($varenavn);
    $placeid = trim($placeid);
   
    $objResponse = new xajaxResponse('ISO-8859-1');
     
    ob_start();
   
        $_SESSION['session_varer'][] = array("vareid" => $vareid, "antal" => $antal, "varepris" => $varepris, "varenavn" => $varenavn, "placeid" => $placeid);
       
        $table_contents = $user->visProduktliste();
 
        foreach($_SESSION['session_varer'] as $items)
        {   
            if (in_array($items['vareid'], $_SESSION['session_varer'],1) == false)
            {
                $cart->add_item($items['vareid'], $items['antal'], $items['varepris'], $items['varenavn'], $items['placeid']);
                //    $objResponse->addAlert(print_r($cart,true));
            }
            else
            {
                $cart->edit_item($items['vareid'], $items['antal']);
            }   
        }
       
       
    if ($cart->total < $conf['portograense'])
    {
        $forsendelsespris = number_format("$conf[forsendelsespris]","2",",",".");
        $_SESSION['forsendelsespris'] = $forsendelsespris;
    }
    else
    {
        $forsendelsespris = 0;
        $forsendelsespris = number_format("$forsendelsespris","2",",",".");
        $_SESSION['forsendelsespris'] = 0;
    }
       
        $ialt = $cart->total + $forsendelsespris;
        $ialt = number_format("$ialt","2",",",".");
        $pris_total = number_format($cart->total,"2",",",".");
       
    ob_end_clean();
   
   
    // Send input tilbage til brugerens computer
    $objResponse->addAssign('produkttabel','innerHTML',$table_contents);
    $objResponse->addAssign('total','innerHTML',$pris_total);
    $objResponse->addAssign('forsendelsespris','innerHTML',$forsendelsespris);
       
    foreach ($cart->get_contents() as $tmp_items)
    {
        $antalplacement[] = $tmp_items['placement'];
        $antalarray[] = $tmp_items['qty'];

        $objResponse->addAssign('antal'.$tmp_items['placement'],'value', $tmp_items['qty']);   
       
        $_SESSION['ialt_antal'] = array_sum($antalarray);
    }
    $objResponse->addAssign('taeller','innerHTML', $_SESSION['ialt_antal']);
    $objResponse->addAssign('ialt','innerHTML', $ialt);
    $objResponse->addAssign('nextscreen','innerHTML','<a href="bestilling.php" onclick="document.form.vare.submit()" style="text-align: right; font-size: 10pt; font-weight: bold; color: #000000;">Videre til næste trin</a>');
   
    return $objResponse;
}

$xajax = new xajax();
$xajax->debugOn(); // Uncomment this line to turn debugging on
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
$xajax->registerFunction("Tilfoej_vare");
$xajax->processRequests();

$_SESSION['ialt_antal'] = 0;

?>
[/code]

Hjæælp og på forhånd tak :)
Avatar billede simm Nybegynder
06. september 2006 - 14:40 #1
problem løst :)

Jeg glemte at opdatere session-objektet efter $cart->add_item()
$_SESSION['kurv'] = $cart;
Avatar billede simm Nybegynder
06. september 2006 - 14:40 #2
svar til mig selv ;D
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