jQuery Sortable Grid в базу данных MySQL PHP - PullRequest
0 голосов
/ 19 апреля 2011

Я пытаюсь отсортировать изображения, используя: http://jqueryui.com/demos/sortable/display-grid.html А затем каким-то образом отправить недавно отсортированный массив / результаты в базу данных MySQL с помощью PHP?

Мне трудно разобраться в этом (новичок), поэтому, если кто-нибудь сможет пролить свет на это, я буду выкладывать hi-5, как будто завтра нет.

Приветствия

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

В частности, вам нужно посмотреть, как прикрепить событие к сортируемому

http://jqueryui.com/demos/sortable/#event-update

и сериализацию для получения соответствующего контента http://jqueryui.com/demos/sortable/#method-serialize

EDIT

Это примитивная версия того, что вам нужно сделать.

<script>
$(function() {

    var arrayOfIds = [];

    $( "#sortable" ).sortable({

          update: function(event, ui) { 
            $.each($(this).sortable('toArray'), function(key, value) {
                arrayOfIds.push(value.replace('el-',''))
            });

            var jqxhr = $.ajax({ 
                url: "order.php?order="+encodeURIComponent(arrayOfIds),

            })
            .success(function(response) { console.log("success"  + response ); })
            .error(function() {  console.log("error"); })
            .complete(function() {  console.log("complete "); });

          }

    });
    $( "#sortable" ).disableSelection();
});
</script>

Каждому элементу li требуется идентификатор, понятный вашей БД

<li class="ui-state-default" id="el-1">1</li>

«1» в id = «el-1» должно относиться к id в вашей таблице БД. Когда вы переупорядочиваетесь, событие обновления срабатывает, проходит новый порядок, захватывает все идентификаторы и передает их ajax-запросу, который затем может получить php-файл. Затем скрипт order.php разделите числа на «,» и обновите таблицу по одному.

, например

$itemOrders = explode(',',$_POST['order']);

$sizeOfList = sizeof($itemOrders);for($i=0; $i<$sizeOfList; $i++)
{
    $itemId = intval($itemOrders[$i]); 

    $query = "UPDATE your_table_name SET order_no = '".$i."' WHERE id = '".$itemId."' ";
    if ($result = $msHandle->query($query))
    {
        $message = 'success';
    }
        else
    {
        $message =   'fail ';

    }
}
0 голосов
/ 19 апреля 2011

В событии сортировки будет функция обратного вызова, которую вы можете использовать для отправки запроса AJAX в скрипт PHP, который обновляет базу данных.Представьте, что после выполнения действия сортировки (т.е. перемещения одного элемента) вы отправляете значения (т.е. упорядоченный список) в сценарий PHP, который принимает эти значения и обновляет базу данных.Я предполагаю, что у вас есть опыт работы с MySQL, поскольку вы, похоже, знаете основы проблемы.

...