2017-08-12 75 views
1

我正在使用ColdFusion和傳統網絡技術(html,css和javascript)構建一個web應用程序。使用ajax保存web應用程序的用戶選擇

我有2周的div:

事業部之一含有通過Ajax更新,並從SQL Server(文件列表,用戶可以選擇逐個)提取信息。作爲一個表中的用戶是選擇行,我想讓它們顯示在第二個div中(這樣用戶就可以看到選擇的內容)。

當用戶選擇一行時,我將該選擇的數據傳遞給一個javascript函數,該函數使用ajax更新第二個div。顯然,通過這種方法,我只能發送單行(所選的一行)的信息。

我的疑問是,我如何跟蹤所有選中的項目,以便第二個div可以顯示所有這些項目,而不是唯一被選中的項目?我應該使用cookie來保存它們嗎?我還有什麼其他選擇?下面的應用程序的圖像

應用佈局:

在此先感謝您的幫助

+0

爲什麼服務器需要知道所做的選擇(即爲什麼涉及AJAX)?服務器是格式化div 2內容還是什麼?究竟是什麼問題,每次在框中選擇多於一個選定的行(例如,每個選擇都替換之前的那個)?代碼示例會很有用。 – Justin

+0

對不起,現在還沒有我的代碼,但會盡快上傳。是的,一個Coldfusion模板負責格式化div的2個內容,並且是的,當選擇另一個時,選定的項目將被替換,我希望它們堆疊在一起。謝謝 –

+0

您是否正在使用'.innerHTML'將AJAX應用程序數據添加到DIV 2? 你想讓你的服務器在每次添加新行或只添加最近添加的行時重新發送所有選定的行嗎?基本上,您希望應用程序級別如何? – Justin

回答

0

你有多種選擇來保存數據,這是從客戶端應用程序訪問,但這取決於你當前的架構。有幾個想到:

  • 如果您想要在同一瀏覽器上保留這些值,請使用localStorage。這將不會與後端通信:localStorage.setItem('selectedItems', JSON.stringify(selectedItemsArray));
  • 使用由應用程序命名空間的全局變量。例如:window.myApp = {}; window.myApp.selectedItems = [...]
  • 使用indexedDB,一個駐留在您的瀏覽器中的數據庫。

因爲您使用的是ColdFusion框架,所以在選項中可能會受到限制。 This answer描述瞭如何添加應用程序範圍變量。