我在我的網站上創建了一個添加到購物車,它的工作原理非常棒。如何在Flask中添加多個項目到會話中
正在使用Jquery.getJSON
使獲得所選擇的產品的價值要求,這裏是代碼:
$(function() {
$('a#process_menu').bind('click', function() {
/*var amount = document.getElementById('kale').value;*/
$.getJSON('{{url_for("get_the_order")}}', {
menu_order: $(this).text(), price_order: $('input[name="kalkal"]').val(),
}, function(data) {
location.reload();
});
return false;
});
});
這裏是接收請求的功能:
@app.route('/get_the_order')
def get_the_order():
global the_order_list
try:
the_order_list = []
sum_list = []
get_order = request.args.get('menu_order', 0, type=str)
get_price = request.args.get('price_order', 0, type=str)
the_order_list.append(get_order)
sum_list.append(get_price)
session['theOrder'] = ' '.join(the_order_list)
session['price'] = ' '.join(sum_list)
return jsonify(result=the_order_list + sum_list)
except Exception as e:
return redirect("menu")
和這裏我有顯示所有產品的模板:
{% if entries_menu %}
{% for menu_ent in entries_menu %}
<div class="col-sm-6 col-md-3 col-lg-3 {{menu_ent.categorie}}">
<div class="portfolio-item">
<div class="hover-bg">
<a id="process_menu">
<div class="hover-text">
<h4 id="title">{{menu_ent.title}}</h4>
<small id="price">{{menu_ent.price}}</small>
<div class="clearfix"></div>
<i class="fa fa-plus add_basket"></i>
<div class="counter-order">
<div class="row">
<div class="col-md-3">
<form>
<fieldset>
<div class="form-group">
<input id="kale" name="kalkal" class="form-control" type="number" value="1" min="1" max="999" />
</div>
</fieldset>
</form>
</div>
</div>
</div>
</div>
<img src="../../static/{{menu_ent.path}}" class="img-responsive" alt="..." id="image-menu">
</a>
</div>
<h4 class="brand bold">{{menu_ent.title}}</h4>
<span class="price pull-right">{{menu_ent.price}} </span><span class="amount pull-right"> {{menu_ent.amount}}</span>
<p id="descr">{{menu_ent.descr}}</p>
</div>
</div>
{% endfor %}
{% endif %}
這裏我做這個功能把所有的產品陣列中,並顯示在其上放置車中的頭旁存在的他們來說,這是所有的邏輯發生也文件,它應該表現出我想要什麼:
{% if session.logged_in %}
{% if session.theOrder %}
<div class="confirm-cancel">
<a href="{{url_for('flush')}}"><i class="fa fa-close fa-3x btn-danger"></i></a>
<a href="{{url_for('order_dish')}}"><i class="fa fa-check fa-3x btn-success"></i></a>
</div>
{% endif %}
<li class='main'><a href='/#main'><span>Main</span></a></li>
<li class="comfort"><a href='/#ckidki' ><span>Chief</span></a></li>
<li class="menu"><a href='/menu/' ><span>Menu</span></a></li>
<li class="order"><a href="/order/" ><span>Make an order</span></a></li>
<li class="contact"><a href='/#contact' ><span>Contact us</span></a></li>
<li class="last orders"><a href='/admin/' ><span>Admin</span></a></li>
{% if session.theOrder %}
<li class="basket"><i class="fa fa-shopping-basket fa-3x" style="color: #fff;"><p class="pull-left" id="bask" style="font-size: 19px; font-weight: 600; font-family: "Russo One",sans-serif;">{{session.get('theOrder')}}  x{{session.get('price')}}</p></i></li>
{% else %}
<li class="basket"><i class="fa fa-shopping-basket fa-3x" style="color: #fff;"><p class="pull-left" id="bask" style="font-size: 19px; font-weight: 600; font-family: "Russo One",sans-serif;">0$   </p></i></li>
{% endif %}
{% endif %}
問題是我無法獲得我在會議中選擇的所有產品,因此如果我查看了產品列表,我只能看到其中的一個,實際上,每次只能獲取點擊的項目。
請,任何建議如何使這項工作,無論如何請,任何幫助將不勝感激。
數組可以在會話對象中傳遞。全局變量對這類事情不適用。會話變量就像全局變量。所以把它用於'the_order_list'。提示:檢查視圖函數中是否聲明瞭會話變量。如果不是,則申報。然後,通過會話對象實際上有一個全局變量。另外,爲什麼'嘗試''除了'塊,這似乎很麻煩。請記住; [最小,完整和可驗證](http://stackoverflow.com/help/mcve)發佈時的代碼示例。 – wgwz
我宣佈會議,它的工作,謝謝:)。 – Reznov