Ext JS 4 редактируемая сетка - PullRequest
2 голосов
/ 25 июля 2011

Я пытаюсь написать приложение ExtJS, которое является сеткой, которое загружает данные из файла JSON на сервер и отправляет измененные поля обратно на сервер. Проблема в том, что мне не удается отправить измененные или добавленные данные обратно на серверный скрипт. Вот код:

var store = Ext.create('Ext.data.Store', {
    model: 'ObjectDefinitionModel',
    autoDestroy: true,
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url: 'load-object-definition',
        api: {
            read: 'load-object-definition',
            create: 'save-object-definition',
            update: 'update-object-definition',
            destroy: 'delete-object-definition'
        },
        reader: {
            type: 'json',
            root: 'fields'
        },
        writer: {
            type: 'json',
            root: 'fields'
        }
    }
});

И у меня есть кнопка, которая при нажатии вызывает store.sync(). После syncinc выполняется скрипт в save-object-definition do , но все, что он получает (как в POST, так и в GET), это [_dc] => 1311511955134, и я понятия не имею, что это. В документации API сказано, что все измененные и добавленные данные должны быть упакованы и отправлены автоматически через прокси. И официальные примеры не показывают какие-либо данные на самом деле отправляются, только некоторые отладочные сообщения. Буду признателен за любую помощь, спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 20 августа 2013

ExtJS-прокси действительно отправляет данные, но использует RAW POST.Вы можете получить их, используя следующую функцию:

function GetRAWdata()
{
    $result = NULL;
    if(function_exists('json_decode'))
    {
        $jsonData = json_decode(trim(file_get_contents('php://input')), true);
        $result = $jsonData['data'][0];
    }
    return $result;
}
0 голосов
/ 09 октября 2011

Я также столкнулся с той же проблемой в одном из моих проектов, где я должен был отправлять только новые или обновленные записи на сервер для сохранения. Сначала я пытался использовать тот же метод, который был опубликован вами здесь, но позже (поскольку он не работал и для меня), я создал собственный код для следующего:

а. Когда пользователь нажимает кнопку для сохранения, затем просматривает все записи сетки и идентифицирует обновленные или вновь добавленные записи.

б. Создайте пользовательский JSON, содержащий все такие записи, и отправьте Ajax-запрос на сервер с этим JSON в качестве одного из параметров.

Это определенно была дополнительная работа, но, в конце концов, послужила цели для меня.

Надеюсь, это поможет.

...