Overføre session til ny side
HejJeg 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 :)
