0

私はこのコードを持っています:

<img src="{$img_dir}/product_grid_view.png" class="pgrid" title="Grid View" onclick="document.getElementById('product_list').id = 'product_grid'; return false"></img>
<img src="{$img_dir}/product_list_view.png" class="plist" title="List View" onclick="document.getElementById('product_grid').id = 'product_list'; return false"></img> 

次のコードはうまく機能し、その仕事をしますが、主な問題は、ページを更新した後に保存された新しい値を保持せずproduct_list、次のステートメントとして .tpl ファイルに記載されているデフォルト値に戻り続けることです: <div id=product_list" class="clearfix">.

この問題に関する提案は大歓迎です!

4

3 に答える 3

2

ページの更新間でデータを永続化する場合は、永続的な場所にデータを保存する必要があります。

これは、クライアント側でアクセス可能な場所(Cookieなど)であり、ページがリロードされたときに、そこにあるデータに基づいて変更を再適用する可能性があります。

または、Ajaxを使用してサーバーに変更を通知し、サーバーにデータをどこかに(データベースなど)保存させ、ページが要求されたときにそのデータに基づいて異なるデータを生成することもできます。

(ただし、IDは動的に変更するのはひどいものです)。

于 2012-12-17T13:42:15.143 に答える
1

簡単な答え:不可能です(少なくとも、あなたの例のようには)。

Javascriptはクライアント側であり、更新するとページがサーバー側で作成されます。

これが本当に必要な場合は、(AJAXを使用して)サーバー側の値を保存し、ページがリロードされるときにこの値を使用する必要があります。しかし、IDを交換するためだけにそれを実行したいとは思わない(そもそも奇妙なことだ)。

于 2012-12-17T13:40:20.940 に答える
0

あなたがしていることは、クライアント側でのみ発生します。ファイルは変更されません.tpl。更新するには、たとえばajaxを使用してサーバーに情報を送信し、 PHP を使用して新しい ID をデータベースに保存し (私が理解しているように、使用しているサーバー側の言語です)、.tpl次にページが表示されたときにファイルに入力する必要があります。読み込まれました。

同時に、要素の ID をそのように変更する必要がある理由が明確ではありません。何か間違ったことをしているようです。

于 2012-12-17T13:44:24.523 に答える