2017-08-12 8 views
1

ColdFusionと従来のWebテクノロジ(html、css、javascript)を使用してWebアプリケーションを構築しています。ajaxを使用してWebアプリケーションのユーザー選択を保存する

私は2つのdiv要素を持っている:

本部の1は、Ajaxによって更新されたテーブルが含まれているとSQL Server(ユーザーを1つずつ選択することができます文書のリスト)から情報を引き出し、ユーザーが行を選択しているの.as 、私はそれらを2番目のdivに表示するようにします(ユーザーは選択されたものを見ることができます)。

ユーザーが行を選択すると、その選択のデータをjavascript関数に渡して、2番目のdivをajaxで更新します。明らかにこのアプローチでは、1つの行(選択された1つ)の情報しか送信できません。

私の疑問は、選択したすべてのアイテムを追跡して、2番目のdivが選択されているものだけでなくすべてを表示できることです。クッキーを使ってそれらを保存する必要がありますか?私が持っている他の選択肢は何ですか?アプリケーションの画像の下

アプリケーションのレイアウト:助けを事前に

おかげ

+0

なぜサーバーは選択されたものについて知る必要があるのですか(つまり、AJAXがなぜ関与しているのですか)。サーバーがdiv 2のコンテンツなどをフォーマットしていますか?一度に1つ以上の選択された行がボックス内に表示されます(たとえば、それぞれの選択が前のものに置き換わるなど)。コード例は便利です。 – Justin

+0

申し訳ありませんが、私のコードは今は持っていませんが、できるだけ早くアップロードします。はい、coldfusionテンプレートがdivの2つのコンテンツのフォーマットを担当しています。また、選択したアイテムは別のアイテムを選択するときに置き換えられ、それらを互いに重なり合わせたいと思います。ありがとう –

+0

AJAXは現在、 '.innerHTML'を使ってDIV 2に応答データを追加していますか? 新しい行が追加されるたびに、または最近追加された行だけが選択されたすべての行をサーバーに再送信しますか?基本的に、アプリケーション・レベルをどの程度健全にしたいですか? – Justin

答えて

0

あなたは、それはあなたのクライアント側のアプリケーションからアクセス可能であることをデータを保存するための複数のオプションを持っていますが、現在のアーキテクチャによって異なります。

  • 同じブラウザで値を保持する場合は、localStorageを使用してください。これは、バックエンドと通信しません。localStorage.setItem('selectedItems', JSON.stringify(selectedItemsArray));
  • アプリケーションによって名前空間が付けられたグローバル変数を使用します。例:window.myApp = {}; window.myApp.selectedItems = [...]
  • ブラウザに存在するデータベースindexedDBを使用します。

ColdFusionフレームワークを使用しているため、オプションが制限されている可能性があります。 This answerには、アプリケーションスコープ変数の追加方法が記載されています。

関連する問題