Изменение порядка полей базы данных с помощью сортируемого пользовательского интерфейса JQuery - PullRequest
1 голос
/ 12 января 2012

У меня есть таблица базы данных, которая содержит список элементов. Соответствующие поля: «имя элемента» и «список_заказа».

Я хочу иметь возможность изменить порядок столбцов "list_order" в моей таблице, вызывая вызов ajax каждый раз, когда сортируется элемент.

Например, если у меня есть следующие данные

Milk     1
Cookies  2
Cereal   3

Я хотел бы использовать пользовательский интерфейс JQuery для перетаскивания Cereal на вершину списка, чтобы это отражалось в базе данных как

Milk     2
Cookies  3
Cereal   1

Может кто-нибудь указать мне на примеры или ссылки, или дать объяснение, как это сделать? ТИА.

1 Ответ

2 голосов
/ 12 января 2012

Вы должны быть в состоянии сделать ajax-вызов скрипта php с массивом list_position => item_id, а затем в цикле PHP через указанный массив с

update table set list_position='$key' where id='$val';

и, конечно, вы будете сортировать по списку при выборе данных для будущих запросов.

Редактировать: только что нашел этот пример в сети @ http://wil -linssen.com / entry / extending-jquery-sortable-with-ajax-mysql /

JS:

<script type="text/javascript"> 
// When the document is ready set up our sortable with it's inherant function(s) 
$(document).ready(function() { 
  $("#test-list").sortable({ 
    handle : '.handle', 
    update : function () { 
      var order = $('#test-list').sortable('serialize'); 
      $("#info").load("process-sortable.php?"+order); 
    } 
  }); 
}); 
</script>

HTML:

<code><pre> 
    <div id="info">Waiting for update</div> 
  • move Item 1 with a link to Google
  • move Item 2
  • move Item 3
  • move Item 4

PHP:

<?php 
/* This is where you would inject your sql into the database 
but we're just going to format it and send it back 
*/ 
foreach ($_GET['listItem'] as $position => $item) : 
  $sql[] = "UPDATE `table` SET `position` = $position WHERE `id` = $item"; 
endforeach; 
print_r ($sql); 
?>
...