2014-12-31 1 views
0

Я разрабатываю приложение в Web2Py, которое состоит в небольшой электронной коммерции. Имейте контроллер и страницу, что ссылка localhost: 8000/topranchos/produto, с продуктами, были topranchos - это приложение.Проблемы с ajax и переменной session в Web2Py

На странице produto есть список продуктов, как это:

The image is in this link

При нажатии кнопки "Adicionar ао 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 и еще не успел:/

спасибо!

ответ

0

Файл модели выполняется по каждому запросу, поэтому вы возвращаете session.carrinho обратно в пустой список по каждому запросу. Вместо этого, в модели, это:

session.carrinho = [] 

должно быть что-то вроде:

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

Спасибо, и счастливый новый год :) –

Смежные вопросы