[英]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.