このコードは、要素をクリックするたびに要素の色を切り替えます。しかし、最初のトグルと2 番目のトグルでクエリ文字列を使用してGET リクエストを送信するにはどうすればよいでしょうか? ?toggle=True
?toggle=False
3 に答える
おお、Firebug には表示されますが、ページの URL には表示されません。理由はありますか?
リクエストを行うことと、アドレス バーの URI を変更することは、ブラウザーにまったく新しいページを読み込ませる場合を除き、2 つの異なることです。
それを行いたい場合は、クライアント側の JavaScript の使用を忘れて、ロジック サーバー側に移動し、通常のリンクを使用する必要があります。
サーバー側のロジックでは、クエリ文字列引数の値を使用してclass
、div (スタイルの設定に使用される) とhref
リンク (つまり、クエリ文字列に True または False がある場合) を決定します。
新しいページの読み込みを回避したい場合は、2 つの別々の手順を見ています。
すでに持っている最初のもの (JS を使用したスタイルの変更)。
残りはさらに複雑になります…</p>
最初に、クエリ文字列の True/False によってページの初期状態が正しく設定されるように、サーバー側のロジックが必要です。これは、前の方法で説明したロジックと同じです。
次に、現在のページを変更している状態でページをロードするものと一致するように URI を更新する必要があります。これはHistory API (pushState
およびその仲間) を使用して行われます。この質問に関する件名の詳細があります。
サーバーに変更を通知したい場合は、 を使用するjQuery.get
だけでなく、ページを更新し、アドレス バーの URI を変更する必要があります。効率的にするには、おそらく追加のクエリ文字列引数を追加して (通常のページ読み込みから Ajax からのものかどうかを判断できるようにするため)、サーバーがその引数を認識したときに、HTML ドキュメント全体ではなく単純な確認応答を返すようにする必要があります。
これを行うには、jQuery の get メソッドを使用するか、トグル関数で自分で行います。
実用的でありながらかなり基本的な解決策は、ローカル変数をカウンターとして使用することです。カウンターが偶数の場合は True を送信し、奇数の場合は False を送信します。
クリックごとにカウンターをインクリメントします:)