2016-10-20 43 views
7

我正在使用嵌套列表進行分解訪問, 當我將項目從List1放到List2時,我必須保存在數據庫中,所以如何確定哪些項目在List2上丟失?如何獲取元素放置在嵌套列表中

這是我的代碼:

 <div class="col-lg-6"> 
      <h3 class="droppTextCenter">Serviços Disponíveis</h3> 
      <div class="dd" id="nestable"> 
       <script id="template" type="text/template7"> 
        <ol class="dd-list"> 
         {{#each Services}} 
         <li class="dd-item" data-id="{{Id}}"> 
          <div class="dd-handle"> 
           <div class="col-lg-9"> 
            {{Descryption}} 
           </div> 
          </div> 
         </li> 
         {{/each}} 
        </ol> 
       </script> 
      </div> 
     </div> 
     <div class="col-lg-6"> 
      <h3 class="droppTextCenter">Serviços Liberados para o Usuário</h3> 
      <div class="dd" id="nestable2"> 
       <script id="template2" type="text/template7"> 
        <ol class="dd-list"> 
         {{#each ServicesReleased}} 
         <li class="dd-item" data-id="{{Id}}"> 
          <div class="dd-handle"> 
           <div class="col-lg-9"> 
            {{Descryption}} 
           </div> 
          </div> 
         </li> 
         {{/each}} 
        </ol> 
       </script> 
      </div> 
     </div> 

我使用template7做出的排行榜。

所以我會在嵌套onChange上做一個ajax方法來將它保存在數據庫中。

$('#nestable').nestable({ 
    maxDepth: 1, 
    group: 1 
}).on('change', updateOutput); 

// activate Nestable for list 2 
$('#nestable2').nestable({ 
    maxDepth: 1, 
    group: 1 
}).on('change', updateOutput); 

這一個將取代updateOutput。 當我將它從List1移動到List2時,我必須保存在數據庫上,但是當我從List2移動到List1時,我必須從數據庫中刪除它。

function saveServicosLiberados() { 
    $.ajax({ 
     url: "/Admin/MeusNegociosAcessos/SaveServicosLiberados", 
     method: "POST", 
     data: { 
      Id: ???????? 
     }, 
     success: function (result) { 
      var list = e.length ? e : $(e.target), output = list.data('output'); 

      if (window.JSON) { 
       output.val(window.JSON.stringify(list.nestable('serialize'))); 
      } else { 
       output.val('É necessario estár com um nevegador com suporte à JSON.'); 
      } 
     } 
    }); 
} 

function deleteServicosLiberados() { 
    $.ajax({ 
     url: "/Admin/Delete", 
     method: "POST", 
     data: { 
      Id: ?????????? 
     }, 
     success: function (result) { 
      var list = e.length ? e : $(e.target), output = list.data('output'); 

      if (window.JSON) { 
       output.val(window.JSON.stringify(list.nestable('serialize'))); 
      } else { 
       output.val('É necessario estár com um nevegador com suporte à JSON.'); 
      } 
     } 
    }); 
} 

那麼,我如何從項目中刪除Id?

回答

1

這是一個棘手的問題要解決(如果我確實......你告訴我)。

FIRST我把Template7排除在外了。
我在這裏手工編寫Notepad++
無論如何,這種HTML預處理器語法與問題的真實主題無關。

問題是如何保存列表項「運動」從列表到另一個,使用Nestable plugin,至極不是因爲2014年8月維護,順便說一句。
所以我給你做了兩個例子。

One是表示掛鉤一個Ajax請求節省元件id的拖動從或到左側列表。
Second顯示掛鉤ajax請求的位置保存一個或兩個列表更改。

我絕對沒有觸及插件代碼...
它似乎是完美的工作。

此外,你的問題是關於如何使用它的結果。
所以我從this GitHub example開始而不是你的代碼。

我發現可以將相關信息提取出來以便將其保存到數據庫。

所以看看兩個鋼筆。
並問我是否有什麼不清楚。
;)

我已經參加了所有相關的console.log()以瞭解發生了什麼。



滑稽軼事(?):我輸了3今日營業時間,在GitHub上等待活着回來從DDoS攻擊的Dyn,張貼此答案。媽的發生了! ;)

相關問題