Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS]Tworzenie pola select + option z bazy danych - jak?, select robię, option nie idzie :|
rozny
post 28.05.2012, 12:30:23
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


Witam, po raz kolejny. Przypadek jest to jednak beznadziejny wink.gif

Mam buttona, którym tworzę pole SELECT. Pole się tworzy - tu nie ma problemu. Problem zaczyna się gdy chcę by select tworzył się od razu wypełniony optionami. Napisałem skrypt, który defacto powinien w pętli wrzucić mi te optiony z tablicy, jednak tak się nie dzieje. Oto mój kod:

  1. function DodajSelect()
  2. {
  3. var select_field = document.createElement('select');
  4.  
  5. var liczba = 0;
  6. var ilosc = document.forms['formularz'].elements.length;
  7. for (var i = 0; i < ilosc; i++ )
  8. {
  9. if (document.forms['formularz'].elements[i].type == 'select')
  10. {
  11. liczba += 1;
  12. }
  13. }
  14.  
  15. select_field.setAttribute('name', 'text-'+(liczba+1));
  16.  
  17. select_field.style.display = "block";
  18. select_field.style.margin= "2px 0";
  19.  
  20. document.forms['formularz'].appendChild(select_field);
  21.  
  22. form.document.getElementsByName('formularz');
  23.  
  24. var opis = new Array('jajco','dwa','piętna');
  25. var wartosc = new Array('co','to','zoo');
  26. var ile = opis.length;
  27.  
  28. for (x=0; x<=ile; x++) {
  29. var NowyOption = new Option(opis, wartosc);
  30. document.getElementsByName('text-'+(liczba+1)).options[x] = NowyOption;
  31. document.forms['formularz'].appendChild(NowyOption);
  32. }


Bardzo proszę o pomoc, bo męczę się z tym już trzeci dzień i nie idzie sad.gif

Ten post edytował rozny 28.05.2012, 12:32:34
Go to the top of the page
+Quote Post
skowron-line
post 28.05.2012, 12:54:06
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


W konsoli pokazują się jakieś błędy questionmark.gif
edit
http://www.javascriptkit.com/javatutors/selectcontent.shtml

Ten post edytował skowron-line 28.05.2012, 12:54:56


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
rozny
post 28.05.2012, 13:28:17
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


Wprowadziłem kilka poprawek, wcześniej konsola nie pokazywała żadnego błędu, teraz wywala:

Cytat
Czas: 2012-05-28 14:24:07
Błąd: can't convert undefined to object
Plik źródłowy: http://adresstrony/
Wiersz: 121



czyli linijka:

  1. document.getElementsByName('text-'+(liczba+1)).options[x] = NowyOption;



A to nieco poprawiony kod:

  1. function DodajSelect()
  2. {
  3. var select_field = document.createElement('select');
  4.  
  5. var liczba = 0;
  6.  
  7. var ilosc = document.forms['formularz'].elements.length;
  8. for (var i = 0; i < ilosc; i++ )
  9. {
  10. if (document.forms['formularz'].elements[i].type == 'select')
  11. {
  12. liczba += 1;
  13. }
  14. }
  15.  
  16. select_field.setAttribute('name', 'text-'+(liczba+1));
  17.  
  18. select_field.style.display = "block";
  19. select_field.style.margin= "2px 0";
  20.  
  21. document.forms['formularz'].appendChild(select_field);
  22.  
  23. form = document.getElementsByName('formularz');
  24.  
  25. var opisy = new Array('jajco1','dwa1','piętna1');
  26. var wartosci = new Array('jajco2','dwa2','piętna2');
  27. var ile = opisy.length;
  28.  
  29. for (x=0; x<=ile; x++) {
  30. var NowyOption = new Option(opisy, wartosci);
  31. document.getElementsByName('text-'+(liczba+1)).options[x] = NowyOption;
  32. liczba++;
  33. }
  34. document.forms['formularz'].appendChild(NowyOption);
  35.  
  36.  
  37.  
  38. }
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 - 02:01