簡體   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