質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1993閲覧

flatpickrを使用しているフォームで、確認画面からhistory.back()した時値が消える

any--front-end

総合スコア11

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/08/31 10:32

だいたい表題の通りなのですが、flatpickrを使用しているフォームで、確認画面からhistory.back()した時に入力していた日付の値が消えます。

前提など

  • すみません、PHPは本業でないので知識不足の点がありましたら申し訳ありません。
  • モジュールでないflatpickrです。
  • フォームには他の要素がありますが、それはどのブラウザでも保持されている。
  • firefoxでは、日付も保持されているので問題がない(ちなみに、firefoxではjsで付け替えたクラスも保持してくれてたりして、他のブラウザと挙動が結構違うなと…)
  • history.back()以外の記述に直すのは、納期の関係でやめたい。
  • 入力画面のPHPのコード上部にキャッシュ関連の記述があり、下記です。まだ追記したほうがよいコードありましたら載せます。

PHP

1<?php 2 if (!session_id()) { 3 session_start(); 4 } 5 6 header('Expires:-1'); 7 header('Cache-Control:'); 8 header('Pragma:'); 9

やったこと

  • 新しいバージョンのflatpickrを使用する => 公式にあるものを引っ張ってきましたがだめぽい。
  • session_cache_limiter関係の記述 => publicとnoneはやってみたけど、だめぽい。
  • セッションで値を保持し、それを入力画面にセット => ページの状態がキャッシュされているので、リロードしないとそれが出てこない、リロードすると他のフォーム要素が消えてしまう => jsと絡めてそこだけ処理する?

要望としましては、複雑に絡めないで、flatpickrの問題はflatpickrの問題としてさっと処理できると嬉しいのですが、最悪、上述のセッションで値保持 + jsと絡める をやらざるを得ないかもと思っています。
時間をかければ解決するかもしれませんが、何かよい考えをお持ちの方がいらしたらお知恵を拝借できればと思った次第です。よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました!!!同じことで困ってる人のために書きます。
下記の記事が参考になりました。
https://stackoverflow.com/questions/63488240/calendar-in-flatpickr-disapears-after-coming-back-to-page

どうやらクラスが消えてるみたいですね。クラスの状態を保持してくれるfirefoxだけ動作していたのも納得です。

私の場合、

js

1 window.addEventListener("pageshow", function() { 2 // flatpickrに関する初期設定 3 })

で直りました。参考になれば。

投稿2020/09/01 10:58

any--front-end

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問