Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Referencja do funkcji, jak dołożyć fragment kodu?
WebCM
post 28.12.2010, 20:10:32
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Oto kod, który wywołuje wyjątek:
[JAVASCRIPT] pobierz, plaintext
  1. var add = function()
  2. {
  3. var c = document.createElement,
  4. tb = c('tbody'),
  5. tr = c('tr'),
  6. th = c('th'),
  7. tR = c('tr'),
  8. td = c('td'),
  9. ta = c('textarea'),
  10. fs = c('fieldset'),
  11. le = c('legend'),
  12. o1 = c('input'),
  13. o2 = c('input'),
  14. o3 = c('input'),
  15. l1 = c('label'),
  16. l2 = c('label'),
  17. l3 = c('label');
  18. th.colspan = 2;
  19. th.innerHTML = '{lang.page} '+ ++num;
  20. td.colspan = 2;
  21. td.align = 'center';
  22. ta.name = 'txt[]';
  23. ta.cols = 50;
  24. ta.rows = 25;
  25. ta.style.width = '100%';
  26. le.innerHTML = '{lang.opt}';
  27. o1.type = o2.type = o3.type = 'checkbox';
  28. o1.name = 'emo[]';
  29. o2.name = 'br[]';
  30. o3.name = 'code[]';
  31. l1.appendChild(o1);
  32. l1.appendChild(document.createTextNode(' {lang.emo}'));
  33. l2.appendChild(o2);
  34. l2.appendChild(document.createTextNode(' {lang.br}'));
  35. l3.appendChild(o3);
  36. l3.appendChild(document.createTextNode(' {lang.hl}'));
  37. fs.appendChild(l1);
  38. fs.appendChild(l2);
  39. fs.appendChild(l3);
  40. td.appendChild(ta);
  41. td.appendChild(fs);
  42. tR.appendChild(td);
  43. tr.appendChild(th);
  44. tb.appendChild(tr);
  45. tb.appendChild(tR);
  46. tab.insertBefore(tb, tab.tFoot);
  47. };
  48. add();
[JAVASCRIPT] pobierz, plaintext
Druga linijka wywołuje wyjątek. Widocznie nie można tworzyć referencji do funkcji. Powyższy kod dodaje fragment formularza w HTML-u, a dokładniej strony artykułu. Można to zrobić na 3 sposoby:
1) tak jak powyżej - generować wszystko z pomocą JS
2) dopisać dodatkowy HTML i go kopiować
3) wziąć istniejący fragment HTML i go kopiować

W przypadku 2) i 3) i tak trzeba zmodyfikować co najmniej 2 elementy w istniejącym kodzie, czyli:
1) numer nowej strony (jeżeli poprzedni był 2, to będzie 3)
2) usunąć zawartość <textarea>
3) ewentualnie zmienić zawartość opcji (checkboxów)

Zatem trzeba znów kopać w drzewku (getElementsByTagName). Metoda 1) jest niestety dłuższa, bo wszystko tworzymy za pomocą funkcji DOM. Jeżeli zmienimy strukturę formularza w kodzie HTML, trzeba dostosować kod JavaScript.

Niedługo może wprowadzę zakładki (tabs), zatem jak najlepiej to rozwiązać?

Ten post edytował WebCM 28.12.2010, 20:11:03


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
darko
post 28.12.2010, 20:50:35
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


[JAVASCRIPT] pobierz, plaintext
  1. var c = document.createElement();
[JAVASCRIPT] pobierz, plaintext

?poza tym kończ instrukcje średnikami, a nie przecinkami. Odnośnie zakładek, to nie bardzo wiem, jaki efekt chcesz uzyskać, ale polecam użyć jQuery tabs


--------------------
Nie pomagam na pw, tylko forum.
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: 21.06.2025 - 17:33