The Essence of Programming

Dynamiczne parametry w Ajax.Autocompleter

03 stycznia 2010

Post ten rozpoczyna cykl krótkich notatek, jakie zapisywałem sobie na moim drugim blogu po angielsku a postanowiłem je dodać również tutaj.

Dwa dni temu miałem problem z Ajax.Autocompleter (z biblioteki script.aculo.us). Potrzebowałem użyć dynamicznych parametrów wysyłanych w żądaniu do serwera. Normalnie są one tworzone statycznie w czasie kiedy tworzona jest instancja klasy. Oczywiście można zmienić to zachowanie, np.:

new Ajax.Autocompleter(
    'search',
    'autocomplete_choices',
    'index.php?controller=search&action=autocomplete', {
        paramName: 'name',
        callback: function(element, entry) {
            return entry+"&"+Form.Element.serialize('type');
        }
    }
);

Wykorzystując callback możemy dodać dynamiczne parametry do naszych zapytań.

Może znacie jakiś lepszy/inny sposób?
Komentarze:
Reinmar [03 stycznia 2010 22:21:07]

Można by w 3ci parametrze (któremu btw. nie zamknąłeś cudzysłowu) zrobić coś takiego 'index.php?' + jakas_funkcja(). Tylko to zadziała jeśli JS jest leniwie ewaluowany - a tego nie wiem i nie chce mi się sprawdzać :P

Edit. chyba jest.

Reinmar [03 stycznia 2010 22:22:26]

Eidt2. chyba jednak nie - firebug wypaczył wynik testu.

Błażej `snipe` Gruszka [04 stycznia 2010 21:51:14]

Dzięki :) Już domknąłem ;)

Kilka informacji o autorze

Programista, blogger, uwielbia białą czekoladę ;)