Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   store update (https://javascript.ru/forum/extjs/30565-store-update.html)

Tim 08.08.2012 16:44

store update
 
Есть Grig:
- тип прокси хранилища: rest
- автозагрузка: false
- автосинхронизация: false

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

// так я пытаюсь вставить в таблицу.
grid.update(0, {username: 123});
grid.getView().refresh();

пробовал писать что то типа store.update. это приводит к отправке запроса методом POST, когда должен быть PUT на обновлении. У меня на POST добавление записи прикручено

Tim 09.08.2012 11:56

В общем делаем так:

берём данные из формы:
values = form.getValues()

номер ряда таблицы:
index = grid.getSelectionModel().getSelection()[0].index // (id в БД можно взять в internalId)

запись в хранилище соотв строке:
row = store.getAt(index).data

обновляем записи так:
row.manager = values.manager;
row.status    = values.status;

потом перерисовка таблицы
grid.getView().refresh();

и обновление на сервере:
Ext.Ajax.request({
            method : "PUT",
            url: 'script.php?id=' + grid.getSelectionModel().getSelection()[0].internalId,
            jsonData : values,
            waitTitle: 'Пожалуйста подождите...',
            waitMsg: 'Сохранение данных',
            success : function () {
                // .....
            }
});



мб кому пригодится

Jeka57 17.10.2012 21:18

Очень интересуют php файлы на серверной стороне, которые обрабатывают запросы, поделитесь? Нигде не могу найти примера работы с базой данных mysql, именно обновления и добавления записей.

Tim 17.10.2012 22:08

1) Соединяешься с БД mysql_connect()
2) Устанавливаешь кодировку соединения mysql_set_charset()
3) Выбираешь БД mysql_select_db()
4) Выполняешь запрос mysql_query()

Запрос может быть каким угодно (добавления, обновление) не важно, отправлять его будет ф-я mysql_query. Сам синтаксис запросов это уже MySQL


Часовой пояс GMT +3, время: 08:49.