在Flask中,如何从选择字段获取输入?
我试图应用我在这个答案中看到的东西,但它不起作用: 我看不出他的情况有什么不同,所以我不明白为什么我的不起作用 这是我的路线:在Flask中,如何从选择字段获取输入?,flask,Flask,我试图应用我在这个答案中看到的东西,但它不起作用: 我看不出他的情况有什么不同,所以我不明白为什么我的不起作用 这是我的路线: @bp.route('/ecommerce/cart/add/product/<id>', methods=['GET', 'POST']) @login_required def ecommerceCartAdd(id): select = request.form.get('modal-product-quantity') print(s
@bp.route('/ecommerce/cart/add/product/<id>', methods=['GET', 'POST'])
@login_required
def ecommerceCartAdd(id):
select = request.form.get('modal-product-quantity')
print(str(select))
p = stripe.SKU.retrieve(id)
product = dict(
id=p.id,
prod_id=p.product,
name=p.attributes.name,
image=p.image,
price=convert_price(p.price)
)
session['cart'].append(product)
flash(f"[{product['name']}] added to cart", "info")
return redirect(url_for('projects.ecommerce'))
这是我的HTML:
我包括了我用来改变显示的JS,以防我搞砸了,尽管我不知道怎么做
另外,请注意,下面的HTML是通过jinja2 include语句放在主页面中的,但是模式显示正确,所以我也不认为这会对它产生什么影响
<div class="modal-footer">
<form class="form-inline" method="POST" action="{{ url_for('projects.ecommerceCartAdd', id=p.id) }}">
<div class="input-group">
<label class="mr-sm-2 float-left" for="prod-quantity-select">Quantity: </label>
<select class="custom-select float-left" id="prod-quantity-select" onchange="AdjustQuantity()"
name="modal-product-quantity">
<option selected value="1">1</option>
{% for i in range(2, 100) %}
<option value="{{ i }}">{{ i }}</option>
{% endfor %}
</select>
</div>
<script>
function AdjustQuantity() {
var q = document.getElementById("prod-quantity-select");
var quantity = q.options[q.selectedIndex].value;
document.getElementById("modal-price-label").innerHTML = 'Total: ';
document.getElementById("modal-price-counter").innerHTML = '(x' + quantity + ')';
}
</script>
<a href="{{ url_for('projects.ecommerceCartAdd', id=p.id) }}" class="btn btn-primary btn-sm"> Add to
cart
</a>
</form>
<button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">Close</button>
</div>
我试着在我把action=url\u放在哪里的地方乱搞。。。将method=POST放在select标记而不是form标记中
无论我做什么,我的产出都是零。我知道路由没有使用POST方法,因为当我将print语句放入条件if request.method=POST中时,它不会打印,但正如我所说的,否则它不会打印
我需要帮助了解如何发布和访问选择字段中的数据
谢谢 有一个ahref假装是一个按钮,因此您没有提交表单 尝试更改此选项:
<a href="{{ url_for('projects.ecommerceCartAdd', id=p.id) }}" class="btn btn-primary btn-sm"> Add to cart </a>
为此:
<button type="submit" class="btn btn-primary btn-sm"> Add to cart </button>
啊哈!那就行了!