Задать вопрос
@ElectroNoise

Как работать с Ajax и сортировкой?

Всем привет. В работе использую jQuery(rapydscript) + webpy на серверной части.

Проблема следующая. Есть список проектов который сортируется по позиции. Нужно менять позицию при нажатии кнопки UP или DOWN и с помощью Ajax отправлять данные на сервер для обновления.

По идее задача простая, но по скольку сталкиваюсь впервые въезжаю в пня.

Пытался решить следующим образом. После переноса проекта на верх, я собираю позиции всех проектов и отправляю на сервер...

Кусок кода в rapydscript

#PROJECTS MODULE
def moveProjectUp():
    parentProject = $(this).parent('div')
    parentProject.insertBefore(parentProject.prev())

    allProjects = $('.projects')
    projectList = allProjects.find('div.single-project')
    positions = []

    for project in projectList:
        position.push($(project).attr('position'))


    data={'pojectsId': pojectsId,
            'indexs': indexs}


    $.post(
        '/projectup',
        JSON.stringify(data),
        serverSuccess
    )

    def serverSuccess(data):
        console.log(data)


    return False

Компилит следующее

function moveProjectUp() {
        var ՐՏitr1, ՐՏidx1;
        var parentProject, allProjects, projectList, positions, project, data;
        parentProject = $(this).parent("div");
        parentProject.insertBefore(parentProject.prev());
        allProjects = $(".projects");
        projectList = allProjects.find("div.single-project");
        positions = [];
        ՐՏitr1 = ՐՏ_Iterable(projectList);
        for (ՐՏidx1 = 0; ՐՏidx1 < ՐՏitr1.length; ՐՏidx1++) {
            project = ՐՏitr1[ՐՏidx1];
            position.push($(project).attr("position"));
        }
        data = {
            "positions": positions
        };
        $.post("/projectup", JSON.stringify(data), serverSuccess);
        function serverSuccess(data) {
            console.log(data);
        }
        return false;
    }

На серверной стороне происходит следующе

class ProjectUp:
    def POST(self):
        header('Content', 'text/json')
        d = json.loads(web.data())
        positions = d['positions']

        projects = list(get_company_projects(session.username))

        for p, i in zip(projects, positions):
            db.update('project', where="id=$id",
                vars={'id': p.id},
                position=i)

        return d

На выходе не получаю правильно отсортированный список проектов. Как решаются такие задачи? Помогите пожалуйста
  • Вопрос задан
  • 200 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы