2014-12-31 51 views
0

我正在Web2Py中開發一個包含一點電子商務的應用程序。有一個控制器和頁面,鏈接是本地主機:8000/topranchos/produto,產品,topranchos是應用程序。Web2Py中的ajax和會話變量問題

在頁面produto有這樣的產品列表:

The image is in this link

當按鈕 「Adicionar AO carrinho」 被點擊時,執行JavaScript函數:

<script> 
    function adicionarCarrinho(prod, qtde) { 
     quantidade = document.querySelector(qtde).value 
     console.log(quantidade) 
     if(quantidade > 0) { 
      $.get("{{=URL(f="adicionarCarrinho")}}", {produto: prod, qtde: quantidade}) 
      .done(function(data) { 
       console.log (data) 
       var atual =document.querySelector(".badge-carrinho").innerHTML; 
       document.querySelector(".badge-carrinho").innerHTML = 
       parseInt(quantidade) + parseInt(atual); 
       alert("Adicionado ao carrinho com sucesso"); 
       }); 
     } 
     else alert("Selecione a quantidade de itens deste produto que você deseja"); 
    } 
</script> 

這是一個請求行動默認/ adicionarCarrinho:

def adicionarCarrinho(): 
if request.vars: 
    session.carrinho.append(
    #{'produto':db(db.produto.id == request.vars['produto']).select(), 
    {'produto':int(request.vars['produto']), 
    'quantidade':int(request.vars['qtde'])} 
    ) 
    print "----------" 
    print session.carrinho 
    return str("OK") 

凡session.carrinho有被宣佈db.py型號列表:

#carrinho 
session.carrinho = [] 

在終端上,命令打印session.carrinho打印由Ajax請求收到物品,但是當我添加其他itens該列表是空的。當我點擊carrinho的頁面時,顯示session.carrinho的信息,var是空的。

我該如何修復?我嘗試使用當然Web2Py餅乾,但我在Web2Py dummie,並沒有成功:/

謝謝!

回答

0

模型文件在每個請求上執行,因此您將session.carrinho重置爲每個請求的空列表。相反,在模型中,這樣的:

session.carrinho = [] 

應該是這樣的:

session.carrinho = [] if session.carrinho is None else session.carrinho 
+0

謝謝大家,新年快樂:) –