ďťż
 
Dynamiczne dodawanie wiersza tabeli ďťż
 
Dynamiczne dodawanie wiersza tabeli
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Dynamiczne dodawanie wiersza tabeli



- 29-03-2006 00:28
Dynamiczne dodawanie wiersza tabeli
  Witam,
Oto kod JS:

var gdzie=document.getElementById('morefields');
var newline='<tr><td><input type="checkbox"><td>1<td><input
type="text"><td><input type="text"><td><input type="checkbox">'
+'<td><input type="text"><td><input type="text"><td><input
type="text"></tr>';
gdzie.appendData(newline);

Oto fragment htmla:
<table id="morefields">

I teraz pytanie- jak to zrobic, zeby to dzialalo?

Pozdrawiam,
Talthen





ethanak - 30-03-2006 00:15

  talthen.z-serwera.o2@nospam.pl napisał(a):
> Witam,
> Oto kod JS:
>
> var gdzie=document.getElementById('morefields');
> var newline='<tr><td><input type="checkbox"><td>1<td><input
> type="text"><td><input type="text"><td><input type="checkbox">'
> +'<td><input type="text"><td><input type="text"><td><input
> type="text"></tr>';
> gdzie.appendData(newline);
>
> Oto fragment htmla:
> <table id="morefields">
>
> I teraz pytanie- jak to zrobic, zeby to dzialalo?

Po pierwsze: appendData jest dla typu text.
Po drugie - musisz mieć tbody (nie chce mi się wyjaśniać dlaczego),
czyli najprościej by było:

<table>
<tbody id="morefields">

I dalej na przykład:

var gdzie=document.getElementById('morefields');
var newline='<td>....'; /* bez tr */
var tr=document.createElement('tr');
tr.innerHTML=newline;
gdzie.appendChild(tr);

ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
/* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
S. Friedmann/J. Kofta */




Artur M. Piwko - 30-03-2006 00:15

  In the darkest hour on Wed, 29 Mar 2006 09:03:57 +0200,
ethanak <sweethanak@buziaczek.pl> screamed:
> Po pierwsze: appendData jest dla typu text.
> Po drugie - musisz mieć tbody (nie chce mi się wyjaśniać dlaczego),

Musi mieć tbody jeśli chce by działało w niebieskim e.

--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:222B ]
[ 10:09:33 user up 10930 days, 22:04, 1 user, load average: 0.06, 0.06, 0.06 ]

MS-DOS: Maybe SomeDay an Operating System.




- 30-03-2006 00:15

  Użytkownik "ethanak" <sweethanak@buziaczek.pl> napisał w wiadomości
news:e0dbgc$248$1@news.onet.pl...
> Po pierwsze: appendData jest dla typu text.
> Po drugie - musisz mieć tbody (nie chce mi się wyjaśniać dlaczego), czyli
> najprościej by było:
>
> <table>
> <tbody id="morefields">
>
> I dalej na przykład:
>
> var gdzie=document.getElementById('morefields');
> var newline='<td>....'; /* bez tr */
> var tr=document.createElement('tr');
> tr.innerHTML=newline;
> gdzie.appendChild(tr);

Tak tez probowalem (ale bez tbody) i to nie dziala jak trzeba (nawet z
tbody).
Wszystko laduje w pierwszej kolumnie nowego wiersza (tam jakby tagi <td> w
newline byly zupelnie ignorowane).

Pozdrawiam,
Talthen





ethanak - 31-03-2006 00:17

  On 2006-03-29 20:33, talthen.z-serwera.o2@nospam.pl wrote:
[...]
> Tak tez probowalem (ale bez tbody) i to nie dziala jak trzeba (nawet z
> tbody).
> Wszystko laduje w pierwszej kolumnie nowego wiersza (tam jakby tagi <td> w
> newline byly zupelnie ignorowane).

Fakt - ciekawe... wygląda na to że przeglądarki nie radzą sobie z
utworzeniem (poprzez podstawienie do innerHTML) czegoś co nie jest
kompletną tabelą - ktoś coś wie na ten temat?

W FF poszło cos takiego:

vat tbody=document.createElement('tbody');
tbody.innerHTML='<tr><td>.....';

ale IE już się na to wypiął.

Rozwiązanie (tym razem sprawdzone FF, IE, Opera, Konqueror)

var gdzie=document.getElementById('morefields');
var co="<table><tr><td>Kolumna 1</td><td>Kolumna2</td></tr></table>";
var div=document.createElement('div');
div.innerHTML=co;
gdzie.appendChild(div.getElementsByTagName('tr')[0]);

i oczywiście <tbody id="morefields">

ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');




- 31-03-2006 00:17

  Użytkownik "ethanak" <sweethanak@buziaczek.pl> napisał w wiadomości
news:e0fpph$qls$1@news.onet.pl...
>Rozwiązanie (tym razem sprawdzone FF, IE, Opera, Konqueror)

>var gdzie=document.getElementById('morefields');
>var co="<table><tr><td>Kolumna 1</td><td>Kolumna2</td></tr></table>";
>var div=document.createElement('div');
>div.innerHTML=co;
>gdzie.appendChild(div.getElementsByTagName('tr' )[0]);
>i oczywiście <tbody id="morefields">

No tak, ale robienie dla kazdego wiersza nowej tabeli to troche takie...
hm... dziwne ;/
I czy przypadkiem te tabelki nie beda nieco rozjechane (tzn. inne szerokosci
kolumn)?

Pozdrawiam,
Talthen




ethanak - 31-03-2006 00:17

  talthen.z-serwera.o2@nospam.pl napisał(a):
> Użytkownik "ethanak" <sweethanak@buziaczek.pl> napisał w wiadomości
> news:e0fpph$qls$1@news.onet.pl...
>
>>Rozwiązanie (tym razem sprawdzone FF, IE, Opera, Konqueror)
[...]
>
> No tak, ale robienie dla kazdego wiersza nowej tabeli to troche takie...
> hm... dziwne ;/

Zawsze możesz spróbować przez

var tr=document.createElement('tr');
var td=document.createElement('td');
td.innerHTML='cośtam';
tr.appendChild(td);

ale chyba nie o to Ci chodziło?
Poza tym tworzenie inputów poprzez createElement już przerabiałem i
oczywiście nIEktóre programy przypominające przeglądarki mają z tym
Poważne Problemy :)

> I czy przypadkiem te tabelki nie beda nieco rozjechane (tzn. inne szerokosci
> kolumn)?

A dlaczego mają być inne? Sprawdź i zapodaj co wyszło, sam ciekaw jestem
a nie mam czasu sprawdzić.

ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
/* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
S. Friedmann/J. Kofta */




- 31-03-2006 00:17

  Użytkownik "ethanak" <sweethanak@buziaczek.pl> napisał w wiadomości
news:e0gb96$m5e$1@news.onet.pl...
> Zawsze możesz spróbować przez
>
> var tr=document.createElement('tr');
> var td=document.createElement('td');
> td.innerHTML='cośtam';
> tr.appendChild(td);
To juz przerabialem, ze duzo kodu by bylo.

> A dlaczego mają być inne? Sprawdź i zapodaj co wyszło, sam ciekaw jestem a
> nie mam czasu sprawdzić.
Bo tabelki w tabelkach, ale jednak wyglada dobrze, a zwykly smiertelnik i
tak nie zobaczy kodu ;]
Dzieki.

Pozdrawiam,
Talthen




Artur Muszynski - 31-03-2006 00:17

  > Fakt - ciekawe... wygląda na to że przeglądarki nie radzą sobie z
> utworzeniem (poprzez podstawienie do innerHTML) czegoś co nie jest
> kompletną tabelą - ktoś coś wie na ten temat?

Na MSDN (How to build tables dynamically) jest zdanie:
Note When using Dynamic HTML (DHTML) to create a document, you can create
objects and set the innerText or innerHTML property of the object. However,
because of the specific structure required by tables, the innerText and
innerHTML properties of the table and tr objects are read-only.

artur

> ethanak




ethanak - 31-03-2006 00:17

  Artur Muszynski napisał(a):
[...]
>
> However, because of the specific structure required by tables,
> the innerText and innerHTML properties of the table and tr objects are
> read-only.

Kurde, codziennie się człowiek czegoś nowego dowiaduje :)

Thx

ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
/* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
S. Friedmann/J. Kofta */




Elus - 01-04-2006 00:21

  talthen.z-serwera.o2@nospam.pl napisał(a):
> Witam,
> Oto kod JS:
> [...]

insertRow():
http://www.mozilla.org/docs/dom/domr...tml_ref31.html
http://msdn.microsoft.com/workshop/a.../insertrow.asp

Przykładzik:
http://groups.google.com/group/pl.co...7b25551912b51e




- 01-04-2006 00:21

  Użytkownik "Elus" <ROT13.ryhf@jub.irpgenarg.cy>
> insertRow():

Fajne, nawet w Operze dziala, tylko i tak musze wowczas jakos dorobic <td> i
<input>, wiec problem praktycznie sprowadza sie do tego samego. Zostane przy
rozwiazaniu pana ethanaka :)

Pozdrawiam,
Talthen




Artur Muszynski - 02-04-2006 00:11

  talthen.z-serwera.o2@nospam.pl wrote:
> Użytkownik "Elus" <ROT13.ryhf@jub.irpgenarg.cy>
>> insertRow():
>
> Fajne, nawet w Operze dziala, tylko i tak musze wowczas jakos dorobic
> <td>

insertCell()

i <input>, wiec problem praktycznie sprowadza sie do tego
> samego. Zostane przy rozwiazaniu pana ethanaka :)

W sumie używanie DOM i TOM do budowania tabel jest podobne, więc jak wolisz.
Zobacz, że masz jeszcze kolekcje rows i cells, więc w sumie TOM jest
wygodniejsze.

artur

>
> Pozdrawiam,
> Talthen
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= Tworzenie tabeli z =?ISO-8859-2?Q?nazw=B1_ustalan=B1_przez_?==?ISO-8859-2?Q?usera?= =?ISO-8859-2?Q?Zawarto=B6=E6_tabeli_na_podstawie_warto=B6?==? ISO-8859-2?Q?ci_w_innej?= MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?= =?iso-8859-2?Q?=5BSQL_Server_2000=5D_uprawnienienia_do_u=BFyw ania_widoku_?==?iso-8859-2?Q?opartego_na_tabeli_z_innej_bazy?= =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= Liczba =?ISO-8859-2?Q?odpowiadaj=B1cych_rekord=F3w_z_drugi?==?ISO-8859-2?Q?ej_tabeli?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= =?iso-8859-2?q?[ms_sql]_Sprawdzenie_kto_usun=B1=B3_dane_w_tabeli_=3F?= =?iso-8859-2?q?zapytanie_mysql_-_podw=F3jne_odniesienie_do_jednej_tabeli=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • marcelq.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com