2014-10-21 4 views
0

У меня есть список категорий, где я хочу использовать перетаскивание для редактирования своего заказа. До сих пор, у меня есть этот код и он работает, но я уже потерял много времени, и я не понять это, как обновить базу данных с их новым порядком:Перетаскивание и обновление базы данных

<ul id="categoryorder"> 
    <?php foreach ($categories as $category) : ?> 
    <li id="<?php echo($category->order_id); ?>"> 
     <form enctype="multipart/form-data" style="margin-bottom: 0;" action="<?php echo base_url();?>backend/cp/categories" method="post"> 
      <input type="hidden" name="c_img" value="<?php echo($category->c_img); ?>" /> 
      <input type="hidden" name="id" value="<?php echo($category->id); ?>" /> 
      <input type="text" name="name" value="<?php echo($category->c_name); ?>" style="width:150px;" /> 
      <input type="file" name="c_img" size="20" value="" /> 
      <input type="checkbox" name="delete" value="1" /> 
      <input type="submit" name="update_category" value="Save" /> 
     </form> 
    </li> 
    <?php endforeach; ?> 
</ul> 

И в ЯШАХ:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("ul#categoryorder").sortable({ 
     opacity: 0.6, 
     cursor: 'move' 
    }); 

}); 
</script> 

Благодарим за помощь!

ответ

1
$("#categoryorder").sortable({ 
     forcePlaceholderSize: true, 
     forceHelperSize: true, 
     dropOnEmpty: false, 
     scrollSensitivity: 100, 
     scrollSpeed: 0, 
     tolerance: "pointer", 
     zIndex: 9999, 
     stop: function(event,ui){ 
      var i = 0; 
      var positions = ''; 
      var ids = ''; 
      $('#categoryorder li').each(function(){ 
       positions += i++ + ','; 
       ids += $(this).attr('id') + ','; 
      }); 
      $.ajax({ 
       type:'POST', 
       data:'positions=' + positions + '&ids=' + ids, 
       url: 'your url', 
       async: false 
      }); 

     } 
    }); 

и код PHP:

$positions = explode(',', $_POST['positions']); 
$ids   = explode(',', $_POST['ids']); 

if (!empty($positions) && !empty($ids)) { 
      foreach($positions as $value => $position_id) { 
       if ($ids[$value] != '' && $position_id != '') { 
        $id = $ids[$value]; 
        $position_id; 
       } 
      } 
     } 
Смежные вопросы