2015-02-25 3 views
0

У меня есть сортируемый список jQuery. В конечном итоге то, что я хочу, это простой php-массив идентификаторов списка. Я пытаюсь взять id и позицию в массиве и добавить его в базу данных. Я хотел бы, чтобы пользователь имел возможность изменить порядок списка, если захочет, и когда они будут удовлетворены заказом, нажмите кнопку для отправки.jquery sortable pass array to php

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

Это упрощено. Идентификатор будет динамически генерироваться с помощью php.

<body> 
    <form> 
     <ul id="sortable-1"> 
      <li id="order1">Item 1</li> 
      <li id="order2">Item 2</li> 
      <li id="order3">Item 3</li> 
      <li id="order4">Item 4</li> 
      <li id="order5">Item 5</li> 
     </ul> 
     <input type="button" value="Submit" onclick="go"> 
    </form> 
</body> 

JQuery, который сделает список сортируется, а также размещать каждый раз, когда порядок изменяется, а не то, что я хочу. Мне нужна отдельная функция, которая называется go с ajax. Кроме того, есть .sortable('toArray').toString(), что я хочу использовать («сериализовать»)? Кажется, он делает простой массив значений id.

$(function(){ 
    $("#sortable-1").sortable({ 
     update: function(event, ui){ 
      var operationOrder = $(this).sortable('toArray').toString(); 
      $ajax({ 
       data: operationOrder, 
       type: 'POST', 
       url: 'order.php' 
      }); 
     } 
    }); 
});   

РНР, который будет держать массив значений ID:

$order = array(); 
$string = $_POST['data']; 
$order = explode(",", $string); 

Спасибо за любую помощь. Это может быть упрощенным для опытных программистов, но я работал над ним в течение нескольких дней ...

ответ

0

Для получения массива данных с $_POST['data'] вам нужно отправить массив как значение для ключа data. Также обратите внимание, что вам не нужно строгать массив. jQuery правильно сформирует кодировку для вас.

$ajax({ 
    data:{data: operationOrder},// don't need to stringify this array 
    type: 'POST', 
    url: 'order.php' 
}); 

Теперь, чтобы проверить, узнать, как проверять запросы AJAX в закладке сети браузер консоли, и вы увидите, что именно передается. Консоль браузера (F12) всегда начинается с отладки ajax