Avatar billede andersbl Nybegynder
07. juli 2010 - 15:47 Der er 2 kommentarer og
1 løsning

Cascading dropdown ved brug af JSP og AJAX

Hej Eksperter!
Jeg har 5 dropdown menuer, men når man vælger en, opdateres siden og alle dropdown-menu filteres efter valget. Det er en langsom og ikke så køn måde at gøre det på, og er der for faldet over Cascading dropdown. Har nu søgt nogle timer og har ikke fundet nogle eksempler jeg kan bruge, da de alle næsten er ASP.

Når du opretter et spørgsmål(her på eksprten) og vælger kategori. Det er næsten sådan jeg ønsker det skal være. Alle kategorier skal bare være tilgængelige fra start.

Har leget med den kode der er her på siden, men er ikke så gode venner med AJAX så har brug for lidt hjælp.

PT. kører scriptet når der vælges noget. MEN ved ikke hvordan jeg får ajax til at kaldes min JSP side hvor den returer et array med OPTION muligheder i dropdown menuen.

=========================================
AJAX KODEN
==========================================

function getCategories(parentid, selectid) {
        var url = '/callback?op=getCategories&method=json&id='+parentid;
        //notice.update("<img src='/theme/images/ajax-loader.gif' alt='' />");
        //$("newquestioncategoryid").value="0";
       
        new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(transport, json) {
                var cats = json;
                alert('virker');
                createCatOptions(json,selectid);
            },
           
            onFailure: function(e) {
                $('ajaxnotice');
                alert('FEJL');
                //notice.update("<img src='/theme/images/warning.gif' title='FEJL: "+e+"'alt='' />");
            },
            onComplete: function(transport) {
                if (200 == transport.status) notice.update("");
                var catid = 0;
                if ($("sub_cat2").selectedIndex != 0) {
                    catid = $("sub_cat2").value;
                } else {
                    if ($("sub_cat1").selectedIndex != 0) {
                        catid = $("sub_cat1").value;
                    } else {
                        if ($("main_cat").selectedIndex != 0) {
                            catid = $("main_cat").value;
                        }
                    }
                }

                if (catid != 0) {
                    switch (parseInt(catid)) {
                                                                                                                            case 2:
                                $("newquestioncategorydesc").innerHTML = "- Her kan du få viden om det C lignende script sprog PHP (Hypertext Preprocessor).";
                                $("newquestioncategoryid").value="2";
                                break;
       
                                    $("newquestioncategorydesc").innerHTML = "<span style='color: #ff0000;'>Der kan ikke oprettes spørgsmål i den valgte kategori</span>";
                            break;
                    }
                }
            }
        });
    }
Avatar billede andersbl Nybegynder
07. juli 2010 - 15:57 #1
Det er egentlig her jeg står af... Hvor modtager den parameterne eller hvad sker der????



new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(transport, json) {
                var cats = json;
                alert('virker');
                createCatOptions(json,selectid);
            },
Avatar billede andersbl Nybegynder
07. juli 2010 - 23:45 #2
Har selv læst og fundet en løsning.

LUKKER
Avatar billede arne_v Ekspert
20. juli 2010 - 03:50 #3
Har du overvejet et taglib med AJAX support således at du ikek selv skal bøvle med JavaScript'en ?

Eller bruge GWT ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester