2015-04-22 7 views
5

wersja skrócona: Jak za pomocą JavaScript lub JQuery, mam dynamicznie przypisanie wybraną wartość z dynamicznie generowanych polu multiselector do domyślnej wartości podane pewne warunki są spełnione, na zmienić (wybrać użytkownika) w innym?Aktualizacja wybranych wartości dynamicznego Multiselectors w Pentaho-CDE

Długa wersja:

Mam trzy poziomy multiselectors (stan, Metro Area (aka MSA), County) dynamicznie zależne od siebie, tak, że tylko powiaty i obszary metra przecinające wybrane stany są wyświetlane w odpowiednie selektory.

Mój problem polega na tym, że jeśli wybiorę MSA w obrębie, powiedzmy, Maryland, a następnie kliknę na Texas, moja tabela, że ​​filtr multiselektorów (sparametryzowana kwerenda MDX) ulega awarii.

Przechodząc przez dzienniki błędów w katalinie Pentaho, okazuje się, że parametr selektora MSA (obszaru miejskiego) staje się niezdefiniowany, gdy wybrany zostanie stan, który nie zawiera poprzednio wybranego MSA.

Chciałbym, aby po wybraniu nowego stanu lub grupy stanów, które nie zawierają aktualnie wybranego MSA lub County, selektory te powracają do wartości domyślnej ("Wszystkie"). Jestem nowym użytkownikiem, więc potrzebuję jak najwięcej szczegółów, jednocześnie mając na uwadze twój czas.


Dodatkowe informacje, w razie potrzeby:

wartości w MSA (Metro Area) zmiany biegów w zależności od stanu (ów), które są zaznaczone, a selektor County jest zależna od państwa i Metro Area . Wszystko dzieje się na stronie HTML (generowanej przez Pulpit CDE Pentaho). Źródłem danych dla każdego jest sparametryzowana kwerenda SQL (przeprowadzona przez Pentaho).

Kiedy „All” opcja dla powiatu i MSA jest wybrany mogę bezpiecznie zmienić wybór Stan: working

Kiedy coś innego niż „All” opcja dla powiatu i MSA jest wybrana nie mogę zmienić powodują zmianę wybór stan bez upaść na desce rozdzielczej: crashing

danych pochodzących z SQL jest tablicę dwukolumnowy, z MDX-sformatowane wartości i etykiety zwykłego tekstu, z wszelką wartość, aby określić rodzica MDX „All” wartość .

+0

Nie sądzę, że to pytanie jest zbyt szerokie. W szczególności pytam o jedną rzecz: jak dynamicznie zmienić przypisanie wartości skrzynki wielokrotnego wyboru pod pewnymi warunkami zmiany w innym. To prawie czysty JQuery, wszystkie rzeczy Pentaho i SQL to tylko kontekst. –

+0

Myślę, że możesz usunąć większość kontekstu swojego pytania, podobnie jak zapytanie SQL, nie jest tak naprawdę związane z pytaniem dotyczącym jQuery. Poza tym powinieneś pokazać aktualny kod źródłowy jQuery, tak jak nie możemy zobaczyć, co robisz źle. – rednaw

+0

@rednaw, to rub, strona jest geneated przez narzędzie Pentaho BI, ale pozwala na dostosowanie poprzez wstawianie własnych jquery lub js w pre i post realizacji i przed i po zmianie. –

Odpowiedz

2

Jeśli nie dać dużo kontekstu, nie mogę dać ci bardzo konkretnej odpowiedzi, więc mam nadzieję, że masz wystarczająco dużo z tego:

$('.one-input').change(function() { 

    if ($(this).val() == 'something') { 
     $('.other-input').val('default-value'); 
    } 

}); 
+0

Dzięki, chociaż nie tak naprawdę to, czego szukałem, zdecydowanie wysłał mnie we właściwym kierunku. –

1

rozwiązać go. Dużo kodu było specyficzne dla Pentaho-CDE, a mianowicie dlatego, że zamiast próbować bezpośrednio zmienić wartość selektora, ustawiłem detektor dla parametru, który przechowuje wartość selektora w selektorze i zmieni to.

Umieściłem poniższy kod w Pentaho-CDE jako zasób JS, a następnie użyłem wariantu w odpowiedzi @ renaw .change(), aby zaktualizować wszystkie moje wybrane wybrane wartości dynamicznie do wartości domyślnej, na wypadek gdyby poprzednio wybrana wartość znikną z nowego dostępnego zestawu opcji.

$(document).ready(function() { 
    // set default value to start with 
    var all_msas = "[Metro Area]"; 
    var all_counties = "[County]"; 
    var all_zips = "[ZIP]"; 
    Dashboards.fireChange("msa_param", all_msas); 
    Dashboards.fireChange("county_param", all_counties); 
    Dashboards.fireChange("zip_param", all_zips); 


    // what's happening on select 
    $("#stateSelectorRow").on("change", function() { 
      Dashboards.fireChange("msa_param", all_msas); 
      Dashboards.fireChange("county_param", all_counties); 
      Dashboards.fireChange("zip_param", all_zips); 
    }); 

    $("#msaSelectorRow").on("change", function() { 
     Dashboards.fireChange("county_param", all_counties); 
     Dashboards.fireChange("zip_param", all_zips); 
    }); 

    $("#countySelectorRow").on("change", function() { 
     Dashboards.fireChange("zip_param", all_zips); 
    }); 

}) 
Powiązane problemy