Jquery UI可排序更新单个记录

时间:2016-01-28 11:03:29

标签: jquery jquery-ui

我有一个这样的清单:

<ul id="sortable">
        <li class="ui-state-default" id="31">
              list item
        </li>

        <li class="ui-state-default" id="32">  
               list item            
        </li>
</ul>

在后端(cakePHP),我有以下行动:

public function ajaxUpdateOrder(){
    $this->autoRender = false;

    if(!empty($this->request->data)){
        $MeetingsTable = TableRegistry::get('Meetings');
        $meeting = $MeetingsTable->newEntity();

        $meeting->id = $this->request->data['id'];
        $meeting->priority = $this->request->data['priority'];

        $MeetingsTable->save($meeting);
    }
}

我需要能够从id元素中捕获li及其当前的能力,以便能够发出适合后端函数的请求,但我无法从文档中找出它

非常感谢任何帮助或指导。

修改

根据以下评论的要求:

我希望在其中一个项目更改位置后触发一个AJAX请求。根据请求,我需要为每个已更改位置的项目传递两个变量,即:id(来自<li id="">)和possition(ul中的新位置)

1 个答案:

答案 0 :(得分:1)

您可以使用update回调触发ajax请求:

$("#sortable" ).sortable({
   update: function(e,ui){
     $.ajax({
       url:'/ajaxUpdateOrder', // url of the service
       data: {
         id: ui.item.attr('id'),
         position: ui.item.index()
       }
     });
   } 
});