簡體   English   中英

Tablednd-在表中使用返回的JSON數據

[英]Tablednd - using returned JSON data in table

我正在改進心願單插件,以便用戶可以通過拖放來更改表格的順序。

我的jQuery Tablednd使用了處理我的ajax調用后返回的JSON數據,並且它正在工作。 但是我真的無法理解如何處理json數據,以便頁面在刷新時返回更新列表。 我希望有人可以按正確的方向推動我,因為我認為自己正在尋找錯誤的術語。 我正在使用Wordpress,因此對AJAX的調用正在使用操作,

<table id="tinvwl-sort" class="tinvwl-table-manage-list">
  <tbody>
    <tr id="153" style="cursor: move; display: table-row;">
      item 1 - many columns of data
    </tr>
    <tr id="152" style="cursor: move;">
      item 2 - many columns of data
    </tr>
    <tr id="151" style="cursor: move;">
      item 3 - many columns of data
    </tr>
  </tbody>
</table>
<div id="feedback"></div>

JQuery的

jQuery("#tinvwl-sort").tableDnD({

    onDrop: function(table, row) {
        var serial = jQuery.tableDnD.jsonize();

    // This does the ajax request
    jQuery.ajax({

        url: example_ajax_obj.ajaxurl,
        data: {
            'action': 'example_ajax_request',
            'order' : serial
        },
        success:function(data) {
            console.log(data);
            jQuery("#feedback").html(data);
        },
        error: function(errorThrown){
            console.log(errorThrown);
        }
    });  

AJAX PHP

function example_ajax_request() {

    // The $_REQUEST contains all the data sent via ajax
    if ( isset($_REQUEST) ) {

        $order = $_REQUEST['order'];

        // Let's take the data that was sent and do something with it


       echo $order;

    }
   die();
}

導致#feedback

{\"tinvwl-sort\":[\"153\",\"152\",\"151\"]}

我知道我需要將這些數據保存到數據庫中,但是要努力找出如何使用創建的JSON數據來做到這一點。 任何方向將不勝感激,因為我覺得我已經窮盡了所有Google搜索,並認為我必須在某個地方犯錯。

非常感謝您的回答,Peersy

我認為關鍵是要了解當前如何在數據庫中存儲項目的順序。 例如,如果您有一個名為items的SQL表,則可以這樣排列:

ID, OwnerID, ItemDescription
151, 543, "Visit Niagara Falls"
152, 543, "Visit London"
153, 543, "Visit Mumbia"
154, 989, "Eat ice-cream in Venice"

然后,不幸的是,您沒有存儲項目的順序,因此它們的顯示順序將是“未定義”的,即可以是任何順序(或可能只是ID順序,可能是它們創建它們的順序)。

因此,您必須添加一個新的Order列,如下所示:

ID, OwnerID, Order, ItemDescription
151, 543, 1, "Visit Niagara Falls"
152, 543, 2, "Visit London"
153, 543, 3, "Visit Mumbia"
154, 989, 1, "Eat ice-cream in Venice"

完成后,可以通過在SQL查詢中添加ORDER BY Order來輕松確保以優先順序顯示項目。

但是,假設您從顯示的表中獲取了JSON,現在可以做什么,

{\"tinvwl-sort\":[\"153\",\"152\",\"151\"]}

是更新訂單列的值,以便153-> 1,152-> 2,151->3。然后,當您下一次獲取願望列表中的項目時,它們將處於新的順序。 您可以在PHP中使用json_decode($order) ,然后將獲得一個帶有tinvwl-sort屬性的對象,該屬性的值是所需順序的數組。

我希望這有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM