Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Jeden select zależny od drugiego
adrianozo
post
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

Ostrzeżenie: (0%)
-----


Witam wszystkich.

W JS to ja nawet nie raczkuje ;d a potrzebuje jeden skrypt.
Znalazłem taki, lecz niestety nie działa.

Mógłbym prosić o pomoc?

Z góry dziękuje

zamowienie.js

Kod
function getLevel(elem) {
    
    // wybrana opcja
    var eid = elem.options[elem.selectedIndex].value;
    // jeśli jest 0 to oznacza to że wybrano wybierz kategorię
    if (eid == 0) return false;
    
    // następny element
    var obj = $($(elem).nextSiblings()[0]);
    // blokowanie całego formularza
    Form.disable($(elem).parentNode);
    
    // czyszczenie listy do której zostaną dodane pobrane dane
    for (i = obj.options.length-1; i >= 0; i--) {
        obj.remove(i);
    }
    
    // komunikat o ładowaniu
    obj.options[0] = new Option("Ładowanie...", 1);
        
    /* komunikacja AJAX'em
    * adres pliku pobieramy z atrybutu action formularza
    */
    new Ajax.Request($(elem).parentNode.action, {
        method: 'get',
        parameters: { id: eid },
        onSuccess: function(transport) {
            for (i = obj.options.length-1; i >= 0; i--) {
            obj.remove(i);
            }
        
            // wszytkie tagi o nazwie option
            record = transport.responseXML.getElementsByTagName("option");
            result = "";
            obj.options[0] = new Option("-- wybierz kategorię --", 0);
            for (i = 0; i < record.length; i++) {
            
                // najpier podajemy wartość, następnie id danego rekordu
                obj.options[i+1] = new Option(record[i].childNodes[0].nodeValue, record[i].getAttribute("id"));
            }
            // odblokowanie formularza
            Form.enable($(elem).parentNode);
            return result;
        }
    });

}

function getItem(id) { /*Coś tu można wrzucić */ }


zamówienie.html

  1. <form name="multicombo" action="ddl.php">
  2. <select size="1" name="a" id="a" onChange="getLevel(this)">
  3. <option value="0" selected>? wybierz kategorię ?</option>
  4. <option value="1">Malarstwo</option>
  5. <option value="2">Pisarstwo</option>
  6. <option value="3">Dziennikarstwo</option>
  7. <option value="4">Ogrodnictwo</option>
  8. <select name="b" id="b" onChange="getLevel(this)" disabled>
  9. <option selected>? puste ?</option>
  10. <select name="c" id="c" onChange="getItem(this)" disabled>
  11. <option selected>? puste ?</option>


Po wybraniu pierwszej kategorii nie rozwija się następna. Może ma ktoś nawet lepszy kod?

Próbuje to cały czas ogarnąć ale mi nie idzie. Myślę, że dobrym sposobem byłoby jQuery, tylko zupełnie nie wiem jak zabrać się za to... Mógłbym prosić o pomoc? Przeszukałem google, ale nie znalazłem nic ciekawego.

Ten post edytował adrianozo 15.01.2011, 11:42:50
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 15:31