Связывание PHP в Mootools при выборе - PullRequest
4 голосов
/ 25 января 2011

Как мне заполнить поля формы, если я выберу одно из значений в раскрывающемся меню (раскрывающийся список получен из БД) Каким-то образом в моем javascript мне нужно подключиться к функциям, так как к различным таблицамс полями формы.

Вопрос

Нужно ли устанавливать поля, используя $ field name?

if(document.id('LoadExtension') && document.id('ExtensionResponse')) { // id of select box
var sel = document.id('LoadExtension'); // ser select box as var.
sel.addEvent('change', function(chg) { // add change event to select box.
    if(sel.getSelected().get('value') != '') { // on change if selected value is not empty.
        new Request.HTML({
            url : 'http://domain.co.nz/index.php?extension='+ sel.getSelected().get('value'),
            onRequest: function() {

            },
            onComplete: function(r1, r2, html, js) {
                document.id('ExtensionResponse').set('html', html);
            }
        }).send();
    }
});

}

Приведенный выше код был настроен для получения из другого документа в поле url:, но я хотел бы сделать это на одной странице.

Ответы [ 3 ]

2 голосов
/ 26 января 2011

для вашего кода:

http://www.jsfiddle.net/dimitar/TXHYg/4/

(function() {
    // anon closure for scope purposes of local vars.

    // cache selectors used repeatedly into local vars.
    var sel = document.id('LoadExtension'), resp = document.id('ExtensionResponse');

    // if they are in the dom...
    if (sel && resp) {
        // ... then attach event listener.
        sel.addEvent('change', function(event) {
            // this == sel.
            var value = this.get("value"); // cache getter.

            if (value === '') {
                return false; // do nothing if not selected/
            }

            // otherwise, it will run the request
            new Request.HTML({
                method: "get", // or post.
                data: {
                    extension: value // etc etc, can add more object properties and values
                },
                url: 'http://domain.co.nz/index.php',
                onComplete: function(r1, r2, html, js) {
                    resp.set('html', html);
                }
            }).send();
        });
    } // end if
})(); // end closure.

вы действительно должны взглянуть на некоторые учебные пособия и примеры и документацию для Request и Request.HTML / JSON / JSONP

пример, аналогичный вашему, который работает для jsfiddle через сервис эхо-тестирования (немного другой объект данных, который имитирует ответ)

http://www.jsfiddle.net/dimitar/TXHYg/3/

0 голосов
/ 25 января 2011

@ medrod;Это верно в отношении $ (), но при использовании последней версии mootools +, обеспечивающей безопасность библиотеки Jess, document.id () является гораздо более безопасным вариантом для совместимости.

, вам нужно собрать остальную часть вашегов результате запроса ajax.Например: http://domain.co.nz/index.php?extension=

запустите вашу первую HTML-форму только с выпадающего списка, затем ваш ajax'd-скрипт создаст и заполнит остальную часть формы.

0 голосов
/ 25 января 2011

вместо document.id ('ExtensionResponse') вы можете написать $ ('ExtensionResponse') Если вы обновляете только содержимое элемента, вы можете использовать параметр update из Request.HTML.

new Request.HTML({
        url : 'http://domain.co.nz/index.php',
        data: 'extension='+ sel.getSelected().get('value'),
        update: $('ExtensionResponse')

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