Несколько флажков одна кнопка отправки в нескольких формах
В настоящее время моя кнопка отправки находится только на одном объекте, который находится вне цикла for, поэтому он будет выполнять вычисления только в нижнем файле.
Однако, если я помещу кнопку обратно в цикл, она поместит кнопку отправки для каждой строки, но она не сможет выполнять вычисления для нескольких файлов, поэтому мне интересно, как мне получить одну кнопку отправки для всех файлов, поэтому он будет выполнять вычисления для каждого файла (который когда-либо проверялся)
(Искал этот вопрос прежде, и ни один из ранее отвеченных вопросов не помог)
HTML-файл (частично)
{% for f in files %}
<tr>
<td>{{ f.key }}</td>
<td>{{ f.last_modified | datetimeformat }}</td>
<td>{{ f.key | file_type }}</td>
<td>
<form class="download-form" action="{{ url_for('myview.action') }}" method="POST">
<input type="checkbox" name="key" value="{{ f.key }}">
{% endfor %}
<button type="submit" name="submit" value="submit">Submit</button>
</form>
</td>
</tr>
Файл Python (частично)
@expose('/', methods=['POST', 'GET'])
@appbuilder.app.route('/', methods=['POST', 'GET'])
def action(self):
my_bucket = get_bucket()
s = my_bucket.objects.all()
t = getmyobject()
return render_template(
'page.html',
my_bucket=my_bucket,
base_template=appbuilder.base_template,
appbuilder=appbuilder,
page=s, t=t
)
2 ответа
Вы перепутали форму и циклы for, попробуйте поместить цикл for внутри тега формы, как это, и добавьте кнопку внутри формы и после закрытия цикла for.
<form class="download-form" action="{{ url_for('myview.action') }}" method="POST">
{% for f in files %}
<tr>
<td>{{ f.key }}</td>
<td>{{ f.last_modified | datetimeformat }}</td>
<td>{{ f.key | file_type }}</td>
<td><input type="checkbox" name="key" value="{{ f.key }}"></td>
</tr>
{% endfor %}
<button type="submit" name="submit" value="submit">Submit</button>
</form>
Надеюсь, поможет.
Если вы не поместите кнопку в форме, но после вашей табели, как это:
{% for f in files %}
<tr>
<td>{{ f.key }}</td>
<td>{{ f.last_modified | datetimeformat }}</td>
<td>{{ f.key | file_type }}</td>
<td>
<input type="checkbox" name="key" value="{{ f.key }}">
</td>
</tr>
{% endfor %}
<button type="submit" name="submit" value="submit">Submit</button>
Затем вы можете собрать значение каждого проверенного поля ввода с помощью JS и отправить их.
Для отправки вы должны использовать событие onclick на кнопке.