繁体   English   中英

如何在请求后保存变量的值,但在第一次加载时有不同的值?

[英]How to save value of a variable after request, but at the first load have a different value?

我有一个 Flask 应用程序,用户可以在其中 select 所需的时间。 期间有开始日期和结束日期。 在页面的第一次加载时,我希望开始日期是当月的第一天,结束日期是当天。 我使用这段代码来完成这项工作,其中 d1 是开始日期,d3 是结束日期:

$('#d1').val(today.getFullYear() + "-" + ('0' + (today.getMonth() + 1)).slice(-2) + "-" + ('0' + 1));
$('#d3').val(today.getFullYear() + "-" + ('0' + (today.getMonth() + 1)).slice(-2) + "-" + ('0' + (today.getDate())).slice(-2));

我希望能够在按下提交按钮后保存用户选择的时间段。 现在,在用户单击提交按钮后,我将开始日期设置为月份的 1,将结束日期设置为当天。 无论用户选择什么不同的日期,都会发生这种情况。 提交后,我希望能够将开始和结束日期显示为用户选择的日期。 如何做到这一点? 我正在考虑使用

$('[name=d1]').val("{{ request.form['d1'] }}");

但这会重置开始日期,一开始就设置为 mm/dd/yyyy,因为没有请求。 用户选择后如何保存日期? 但是让在第一次加载页面时选择的日期作为月份和当前日期的 1。

你有很多选择来实现这一目标

如果您使用Flask模板引擎来呈现响应,您可以在模板中设置响应之前的日期。

假设您要提交日期的路线是/

@app.route('/')
def index():
    start_date = request.form['start_date']
    end_date = request.form['end_date']
    ...
    return render_template('template_name.html', start_date=start_date, end_date=end_date )

在您的模板中

<input type="date" value="{{start_date}}" />
<input type="date" value="{{end_date}}" />

另一种选择是直接在客户端使用localStorage

此外,这取决于您使用的是 jquery 提交还是 HTML 表单提交

如果您使用的是 jquery 提交

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

那么您应该处理成功回调中的更改

有类似的东西

$('[name=d1]').val("{{ request.form['d1'] }}");

希望有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM