SilverStripe'de oldukça basit bir çevrimiçi mağaza yapıyorum. Sepetteki bir öğeyi kaldırmak için bir işlev yazıyorum (benim durumumda order
).SilverStripe'de oturum açma oturumu açma
Benim kurulumu: ajax kullanılmak üzere görünüme
Benim uç nokta dönüyor JSON.
public function remove() {
// Get existing order from SESSION
$sessionOrder = Session::get('order');
// Get the product id from POST
$productId = $_POST['product'];
// Remove the product from order object
unset($sessionOrder[$productId]);
// Set the order session value to the updated order
Session::set('order', $sessionOrder);
// Save the session (don't think this is needed, but thought I would try)
Session::save();
// Return object to view
return json_encode(Session::get('order'));
}
Sorunum:
Ben bu rota veri göndermek, ürün ama sadece geçici bir sonraki sefer kaldır denir kaldırılan alır, önceki öğe geri döndü.
Örnek:
al nesnesi:
{
product-1: {
name: 'Product One'
},
product-2: {
name: 'Product Two'
}
}
Ben şu olsun product-1
kaldırmak sonrası: görünür
{
product-2: {
name: 'Product Two'
}
}
çalışmış olmak ama sonra denemek ve product-2
ile kaldırın ve şunu edinin:
{
product-1: {
name: 'Product One'
}
}
A B SONU GERİ! Tüm arabayı aldığımda, hala her ikisini de içerir.
order
nasıl takılır?
Ah kahretsin için yeni değer belirlemeniz doğrudan önce textmanipulate $ _SESSION vurguladı etmektir! Durumun böyle olabileceğini düşündüm, bir gözetim gibi göründü ... Bir çekişme yöntemi için bir çekme isteğine sahip olabilirim. Her neyse, şimdi harika çalışıyor. – nickspiel