Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z zaleznymi selectami
Skyline
post 11.01.2008, 13:49:43
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

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


Witam, mam problem z zaleznymi selectami pod IE6 oraz IE7 - pod firefox działają poprawnie. Wydaje mi sie, ze blad jest gdzies w wywolaniu funkcji, gdyz w tym miejscu otrzymuje komunikat bledu. Siedze juz nad tym drugi dzien, jednak nie moge wyeliminowac tego bledu.

Fukcja w javascript jest taka:

function List(x,y,i,t)
{
var O={
'7':{'27':'Sieci wodne i kanalizacyjne','26':'Składowiska odpadów','25':'Spalarnie odpadów','24':'Oczyszczalnie ścieków',
'23':'Przemysłowe instalacje ochrony środowiska',},
'6':{'11':'Obiekty wielkokubaturowe','10':'Obiekty handlowe','9':'Obiekty użyteczności publicznej','8':'Obiekty biurowe',
'7':'Obiekty mieszkalne'},
'5':{'18':'Miejska infrastruktura komunikacyjna','17':'Obwodnice','16':'Drogi krajowe',},
'4':{'28':'Instalacje dla przemysłu energetycznego','22':'Instalacje przemysłowe','21':'Konstrukcje stalowe',
'20':'Hale magazynowe i centra logistyczne','19':'Hale przemysłowe',},
'3':{'15':'Obiekty infrastrukturalne','14':'Konstrukcje podziemne','13':'Wiadukty','12':'Mosty',}
}

while(y[0])y.remove(0)
for(i in O[x]){
y.appendChild(t=document.createElement('option')).text=O[x][t.value=i]

}
}

pierwszy select jest taki:

<select name="branche" onchange="List(this.value,this.form.investments);">
<option value="0">-- Wybierz --</option>
<option value="7">Budownictwo ochrony środowiska</option>
<option value="6">Budownictwo ogólne</option>
<option value="5">Budownictwo drogowe</option>
<option value="4">Budownictwo przemysłowe</option>
<option value="3">Budownictwo inżynierskie</option>
</select>

drugi, zalezny od tego wyzej:

<select name="investments">
<option value="0">-- Wybierz branże --</option>
</select>

W firefox działają poprawnie, w IE dostaje komunikat ze oczekiwano obietku. Tak jak mowie, podejrzewam ze blad jest w tym wywolaniu: List(this.value,this.form.investments), wydaje mi sie, ze ten drugi parametr jest niepoprawny.

Bede wdzieczny za wszelkie sugestie i pomoc.

Pozdrawiam
Go to the top of the page
+Quote Post
slammer
post 11.01.2008, 15:41:51
Post #2





Grupa: Zarejestrowani
Postów: 187
Pomógł: 6
Dołączył: 31.08.2005
Skąd: Bielsko-Biała

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


Zrobiłem tak:
  1. function List(x,y,i,t)
  2. {
  3. var O={
  4. 'q':{'w':'Sieci wodne i kanalizacyjne'}
  5. }
  6.  
  7. while(y[0])y.remove(0)
  8. for(i in O[x]){
  9. y.appendChild(t=document.createElement('option')).text=O[x][t.value=i]
  10.  
  11. }
  12. }
  13.  
  14. <select name="branche" onchange="List(this.value,this.form.investments);">
  15. <option value="0">-- Wybierz --</option>
  16. <option value="q">Budownictwo ochrony środowiska</option>
  17. <option value="6">Budownictwo ogólne</option>
  18. <option value="5">Budownictwo drogowe</option>
  19. <option value="4">Budownictwo przemysłowe</option>
  20. <option value="3">Budownictwo inżynierskie</option>
  21.  
  22.  
  23. <select name="investments">
  24. <option value="0">-- Wybierz branże --</option>
  25.  
  26. </form>


Wygląda to tak jakby w IE wlaściwości nie mogły być nazywane liczbami ( co wydaje się być nawet logiczne biggrin.gif )
Go to the top of the page
+Quote Post
Skyline
post 13.01.2008, 12:28:43
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

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


Fakt, z literami jako indeksy działa, ale dlaczego nie działa z indeksami numerycznymi? Gdzie moze lezec problem - pod firefox działa z indeksami numerycznymi.
Go to the top of the page
+Quote Post
slammer
post 13.01.2008, 15:50:36
Post #4





Grupa: Zarejestrowani
Postów: 187
Pomógł: 6
Dołączył: 31.08.2005
Skąd: Bielsko-Biała

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


Wyobraź sobie jak wygląda pobranie takiej właściwości:
O.7.27
tworząc ją bez iterału i chcąc do niej coś zapisać, na pewno dostaniesz błąd. Co innego jeśli napiszesz:
O.q.w
Pozwolę sobie przypuszczać ( nie wiem na pewno ), że w Firefox liczby wpisane w apostrofy są od razu interpretowane jako string. W IE zapewne nie ma takiego mechanizmu.
Go to the top of the page
+Quote Post
Skyline
post 13.01.2008, 17:59:45
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

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


Całkiem możliwe. Nie byloby problemu, gdybym wartosci selectów tworzy wpisujac z ręki, niestety sa one pobierane z mysql, a value w option to id z tabeli mysql... nie sa one literami, tylko wartosciami liczbowymi.
Go to the top of the page
+Quote Post
phpion
post 13.01.2008, 19:36:27
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Skyline @ 13.01.2008, 19:59:45 ) *
Całkiem możliwe. Nie byloby problemu, gdybym wartosci selectów tworzy wpisujac z ręki, niestety sa one pobierane z mysql, a value w option to id z tabeli mysql... nie sa one literami, tylko wartosciami liczbowymi.

Może w takim razie po prostu dodawaj jakiś przedrostek przed id. Np. zamiast wypisywać samo 1, 2 wypisuj id1, id2. Jeśli w tym leży problem to powinno pomóc.
Go to the top of the page
+Quote Post
Skyline
post 15.01.2008, 09:14:01
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

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


Dodałem "id" przed indeksy numeryczne w tablicy, takze wygladaja one teraz tak np "id27", pod ff działa, pod IE niestety nie.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 00:49