MooTools: Как упаковать данные для ajax-запроса POST? - PullRequest
0 голосов
/ 14 октября 2011

Я использую MooTools 1.4.1. Я хочу создать ajax post requst, но я не могу понять, как создать атрибут «data», который я хочу содержать пары «имя-значение» формы с идентификатором «myForm».

        $('save').addEvent('click', function(event) {
            var req = new Request({
                method: 'post',
                url: 'save',
                data: { ... },
                onRequest: function() { 
                        // on request
                },
                    onComplete: function(response) {
                        alert(response);
                    });
        });

Кто-нибудь знает, как мне заполнить атрибут "данные"? Спасибо, Дэйв

Ответы [ 3 ]

1 голос
/ 15 октября 2011

Как прокомментировал Savageman, вы можете бросить свой элемент формы в toQueryString() и отправить его через в свойстве data, или запустив .send() или .post() в объекте запроса.

Вам также кажется, чтопропустить закрывающую скобку.

Во всяком случае, так я делаю AJAX-запросы:

new Request({
    url: 'http://url/to/ajax/script.php',
    onSuccess: function(data) {
        doStuff();
    }
}).post('action=foo&bar=baz');

Я бы порекомендовал вам использовать Request.JSON, если вы планируете отправлять вещиназад.Это менее "подход к дробовику" - да.

1 голос
/ 03 февраля 2013

Вы можете просто передать элемент формы свойству data, и преобразование будет выполнено автоматически.

var req = new Request({
    method: 'post',
    url: 'example.com/form.php',
    data: $('myForm'),
    onRequest: function() { 
        // on request
    },
    onComplete: function(response) {
        alert(response);
    }
});

data - (mixed: по умолчанию '') Данные по умолчанию для Request: send, используются, когда данные не передаются. Может быть Элемент , Объект или Строка .
Если передан Object , то Object: toQueryString будет использован метод для преобразования объекта в строку.
Если передан элемент , то Element: toQueryString будет использован для преобразования элемента в строку.

http://mootools.net/docs/core/Request/Request

1 голос
/ 14 октября 2011

Вы можете использовать

$('myForm').toQueryString();

Кроме того, пакет MooTools More имеет класс Form.Request() для отправки формы с использованием Ajax.

...