我正在使用flask和jquery制作购物车页面,flask将数据发送到jquery,并且jquery根据该数据生成一个表,每当用户单击时,每个表行中都有一个包含数量的输入字段。更新按钮,jquery会获取值并将其发送到flask进行处理,但是我flask返回了以None发送的值,我不确定是什么问题,是jquert发布数据还是flask获取数据。
表
$.ajax({
url: '%%url_for("shopping_cart.get")%%%%process_query_string(request)%%',
type: 'GET',
dataType: 'json', // added data type
success: function (res) {
var grand_total = 0;
$.each(res, function (key, value) {
var product = value.id;
var qty = value.Number_of_item;
var price = value.Price;
var tot = price * qty;
var markup = "<tr>"
+ "<td class='width-10'><a href='#' class='remove-item' ><i id = '" + product + "' class='fa fa-times-circle'></i></a></td>"
+ "<td>" + product + "</td>"
+ "<td class='width-50 center' id = 'price" + product + "' >" + price + "</td>"
+ "<td class='qty-txt-box'><input name='quanitity' type='text' id = 'qty" + product + "' class = 'quantity' value='" + qty + "'><i class='fa fa-refresh'></i></td>"
+ "<td class='width-50 center' ><div id = 'total" + product + "' class = 'total' >$" + tot + "</div></td>"
+ "</tr>";
grand_total = grand_total + tot;
$('#yourID').append(markup);
});
$('#total').html("$" + grand_total);
}
});
脚本以更新按钮
$('#update').click(function (e) {
e.preventDefault();
jsonObj = [];
var qty;
url = "/shopping_cart/update";
$(".quantity").each(function (e) {// get value of inputs fields
qty = $(this).val();
jsonObj.push(qty);
});
console.log(jsonObj);
data = {'quantity': jsonObj};
$.ajax({
type: 'post',
datatype: ' json',
url: url,
data: data,
success: function (data) {
console.log(data);
},
error: function (err) {
error = "";
for (key in err.responseJSON) {
error += err.responseJSON[key] + "<br>";
}
if (error)
$("#error p").html("<p>" + error + "</p>");
else
$("#error p").html("<p>" + err.responseText + "</p>");
$("#error").show();
}
});
});
烧瓶更新路径
@shopping_cart.route("/shopping_cart/update", methods=['GET', 'POST'])
@login_required
def update():
data = request.args.get('quanitity')
print(data)
'''return None I tried data = request.args.getlist('quanitity')
data = request.get_json()
data = request.json'''
return jsonify({'message': 'done'})
我想打印该值,以便可以在sqlAlchemy中更新该表,但我一直得到None值。任何帮助表示赞赏。
答案 0 :(得分:0)
您使用POST
方法发送请求,并从args
获取参数。
这需要从form
获取参数。
就像:
data = request.form.get('qaunitity')
print(data)
更新
如果要获取form
列表数据。您应该使用以下方法:
data = request.form.getlist('quantity[]')
print(data)