1

JQM Web アプリのユーザーがテーマを制御できるように、ローカル ストレージを使用しようとしています。ただし、正しいテーマを生成できるように、ローカルストレージデータをphpに戻す方法がわかりません。

現時点では、ユーザーが希望する色を選択できるフォームがあります。フォームが送信されると、選択した値をセッション変数に保存し、PHP コードで使用してページを生成します。また、ユーザーのブラウザーのローカル ストレージに値を保存します。

問題は、ユーザーがブラウザを閉じてサイトに再度アクセスしたときに発生します。ローカル ストレージから設定を読み取る必要がありますが、これは JavaScript を使用して実行できます。次に、これらの値をセッション変数に保存して、php コードが読み取れるようにする必要があります。次のことを試してみましたが、「成功」という警告ボックスが表示されますが、実際には PHP コードを呼び出しているようには見えません。

var themeDefault = (window.localStorage && window.localStorage.getItem('theme') != "" && window.localStorage.getItem('theme') != null) ? window.localStorage.getItem('theme') : "a";

$(document).live('pageinit', function () {
  $.ajax({
    url: "theme.php",
    cache: false,
    type: "POST",
    data: {"theme=" + themeDefault},
          success: function(){
                alert('success');
          }
  });
});

上記のコードに何か問題がありますか?「成功」メッセージが表示されたにもかかわらず、なぜ theme.php を呼び出さないのですか?

もう1つの問題は、このコードをランディングページで1回だけ実行したいということです。どうすればそれを行うことができますか?現在、すべてのページで 1 回実行されます。

私の他のオプションは、クッキーを使用することです。その方が良い計画だと思いますか。

4

0 に答える 0