Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Domyślny select
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
dyktek
Witam, mam mały problem z ustawieniem domyślnego selecta kod:

Kod
function wypelnij(idselecta,kategoria,podkategoria)
         {


  mojselect = document.getElementById(idselecta);


  mojselect.length = 0;

  for(i=0; i < id.length; i++)
  if(pow[i] == kategoria)
  {
  mojselect.options[mojselect.length] = new Option(tytul[i],id[i]);
  
  if(podkategoria == id[i]) numerek = i;
  }



     mojselect.defaultSelected[numerek];

  }


działa to w ten sposób że pobiera numer kategorii i na tej podstawie generuje selecta z podaktegoriami, jako 3-ci parametr jest id pokategorii i wszytko działa do momentu gdy chce aby select z podkategoriami ustawiał się domyślnie na id podkategorii którą skrypt dostaje z 3-cim parametrem i ten motyw mi nie chce wyjść tzn jak przypisać wartość selected w tym selekcie
revyag
Kod
mojselect.options[numerek].selected="selected";
dyktek
cały kod wygląda tak

Kod
function wypelnij(idselecta,kategoria,podkategoria)
        {


mojselect = document.getElementById(idselecta);


mojselect.length = 0;

for(i=0; i < id.length; i++)
if(pow[i] == kategoria)
{
mojselect.options[mojselect.length] = new Option(tytul[i],id[i]);

if(podkategoria == id[i]) numerek = i;
}



     mojselect.options[numerek].selected="selected";

}


i jak podglądam źródło zaden option nie przyjmuje wartosc selected
revyag
No i questionmark.gif
Co z tego że nie widać tego w źródle. Wyniku takiej operacji nie zobaczysz. I nie mów że sprawdzasz poprawność działania tego patrząc w źródło.
dyktek
wydaje mi się że parametr, który ma być selected dostanie w źródle powienien wyglądać tak <option value="34545" selected>sdfgdfg</option> poza tym widze też że nie przypisuje tych podaktegorii tak jak należy
revyag
Jak wcześniej napisałem, nie zobaczysz tego w źródle.
Co do tego że Ci skrypt nie działa.
Kod
mojselect.length = 0;
- co to jest ? select jako element nie ma atrybutu length
Kod
for(i=0; i < id.length; i++)
co to jest id questionmark.gif skąd to bierzesz ?
co to jest pow[i] ?
dyktek
no bo to działa tak że jest select z głównymi kategoriami, który wywoływany jest tak

Kod
onChange="wypelnij(par1, par2, par3);


gdzie jako par 1 to id selecta, który ma zostać wypełniny czyli ten ponizej

Kod
<select class="katego" name="podkategoria" id="pole">

</select>



no i dalej jako kolejny parametr przyjmowane jest id kategorii głównej po czym sprawdzamy w tablicy javy pow, które klucze są powiązane z wybraną kategorią, tablica wygląda tak:

Kod
pow[0] = '1'
    tytul[0] = 'Znaczki'
    id[0] = '3'

          

    pow[1] = '1'
    tytul[1] = 'Plakaty'
    id[1] = '4'

          

    pow[2] = '2'
    tytul[2] = 'Obrazki'
    id[2] = '5'

          

    pow[3] = '2'
    tytul[3] = 'Telefony'
    id[3] = '7'



no i jeśli znajduje podkategorie powiązane z kategorią wstawia je w tego selecta, jako trzeci parametr podajemy id podkategorii
revyag
Kod
mojselect.options[mojselect.length] = new Option(tytul[i],id[i]);

to nie przejdzie bo select nie ma length
Kod
mojselect.options[mojselect.options.length] = new Option(tytul[i],id[i]);
dyktek
no i lipa, nadal nie ustawia tego domyślnego optiona na swoje miejsce, sprawdzałem i kategoria, podkategoria wszystko jest przenoszone prawidłowo wywoluje nawet alert(tytul[numerek]) i zwraca mi tytul prawidlowej podkategorii ale za cholere nie chce ustawic jej jako domyslna wartosc
revyag
Odpal skrypt pod firefoxem. Włącz konsolę java script: narzędzia->konsola javascript i napisz jakie masz błędy.
dyktek
błędu js nie ma
revyag
daj w alert to :
Kod
mojselect.options[numerek]
jak nie pokaże Ci undefined wyświetl jeszcze sobie
Kod
mojselect.options[numerek].value
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.