Ik probeer nu al enige tijd de Ajax.Request te doorgronden, gebruikens geeft in eerste instantie niet zoveel problemen, tot het moment dat ik meer wil dan een simpele request.
Ik wil een suggestionbox laten zien onder een tekstveld, en natuurlijk wil ik meerder velden in een form laten zien. En natuurlijk ben ik lui en wil ik niet voor elk veld nieuwe functies defineeren.
Dus een object zou uitkomst kunnen bieden.
Ik heb het volgende:
Zoals te zien gebruik ik de prototype library voor mijn ajax request. Ik ben al vaker aan het stoeien geweest met callbacks, maar dit gaat nog niet iets verder.
Ik wil dus de objectfunctie aanroepen om de searchdiv te vullen met het resultaat. Hoe het nu in de functie staat, werkt dus zeker niet. Ik heb er al een aantal experimenten op los gelaten, maar geen van allen gaat in de goede richting.
Ik wil een suggestionbox laten zien onder een tekstveld, en natuurlijk wil ik meerder velden in een form laten zien. En natuurlijk ben ik lui en wil ik niet voor elk veld nieuwe functies defineeren.
Dus een object zou uitkomst kunnen bieden.
Ik heb het volgende:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| function Suggestion(oSource, strURL, strResponseFormat, oValue){ this.oSource = oSource; this.oValue = oValue; this.strURL = strURL; this.strResponseFormat = strResponseFormat; // Turn of autocompletion for the source box this.oSource.setAttribute("autocomplete", "off"); } Suggestion.prototype.Show = function(){ // Hide all selectboxes HideAllSelectboxes(); this.oSearchDiv = document.createElement('div'); this.oSearchDiv.id = this.oSource.id + '_search'; this.oSearchDiv.className = 'SuggestionBox'; this.oSearchDiv.style.visibility = 'visible'; this.oSearchDiv.style.position = 'absolute'; this.oSearchDiv.style.left = findPosX( this.oSource ) + 'px'; this.oSearchDiv.style.top = findPosY( this.oSource ) + this.oSource.offsetHeight + this.oSource.style.borderBottomWidth + 'px'; document.body.appendChild( this.oSearchDiv ); this.Request = new Ajax.Request(this.strURL + this.oSource.value, { onLoaded : function() {// En hoe doe ik nu een callback naar het aanroepende Suggestion object } }); } Suggestion.prototype.StartSearch = function(){ this.oSearchDiv.innerHTML = 'Start searching...'; } Suggestion.prototype.ShowResults = function(t){ } |
Zoals te zien gebruik ik de prototype library voor mijn ajax request. Ik ben al vaker aan het stoeien geweest met callbacks, maar dit gaat nog niet iets verder.
Ik wil dus de objectfunctie aanroepen om de searchdiv te vullen met het resultaat. Hoe het nu in de functie staat, werkt dus zeker niet. Ik heb er al een aantal experimenten op los gelaten, maar geen van allen gaat in de goede richting.
"Chaos kan niet uit de hand lopen"