CakePHP: переупорядочение таблиц - PullRequest
0 голосов
/ 03 января 2019

Я хочу реализовать функцию переупорядочения методом перетаскивания с автоматическим сохранением в таблице cakephp.

Я пытаюсь реализовать этот пример в моем проекте CakePHP без использования команд SQL.

Я хочу обновить priority поля строк таблицы.

То есть в view.ctp :

  <div class="container">
        <table class="table table-bordered">
            <tr>
                <th>#</th>
                <th>Name</th>
                <th>Defination</th>
            </tr>
            <tbody class="row_position">
            <?php


            foreach ($user->tasks_to as $task) {


            ?>
                <tr  id="<?php echo $task['id'] ?>">
                    <td><?php echo $task['id'] ?></td>
                    <td><?php echo $task['name'] ?></td>
                    <td><?php echo $task['description'] ?></td>
                </tr>
            <?php } ?>
            </tbody>
        </table>
    </div>

<script type="text/javascript">
$( ".row_position" ).sortable({
    delay: 150,
    stop: function() {
        var selectedData = new Array();
        $('.row_position>tr').each(function() {
            selectedData.push($(this).attr("id"));
        });
        updateOrder(selectedData);
    }
});


function updateOrder(data) {
    $.ajax({
        url:"updateTasksOrder",
        type:'post',
        data:{position:data},
        success:function(){
            alert('your change successfully saved');
        }
    })
}
</script>

и в контроллере:

public function beforeFilter(Event $event) {
    parent::beforeFilter($event);
    $this->Auth->allow();

}

public function updateTasksOrder()
{
    $this->autoRender = false; 
    $position = $_POST['position'];

    $i=1;
    $connection = ConnectionManager::get('default');

    foreach($position as $k=>$v){ 
        $connection->update('tasks', ['priority' => $i], ['id' => $v]);

        $i++;
    }
}

Но он не работает, он не обновляет поле priority. Есть предложения почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...