Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wstawianiem tabeli przez JS
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
TomASS
Witam

Mam dokument HTML a w nim:
  1. <tbody id="Tabela">
  2.  
  3. </tbody>


Na razie jest pusta.
Mam również string w JS o takiej konstrukcji:
  1. <table><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>8</td></tr>
  2. <tr><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td></tr></table>

Jeśli byłoby wygodniej to można by było wygenerować inny string, chodzi mi o to, że chciałby aby dane z tego stringa (z tej tabelki) "wpasowały się" do <tbody id="Tabela">

Próbowałem rozbijać string metodą string.slice(), ale to nie wiele mi daje, ponieważ nie umiem wygenerować ciała tabeli :/
Gdyby ktoś mi podpowiedział jak, lub przy użyciu jakich funkcji to byłbym bardzo wdzięczny.

Dzięki za pomoc - jak widać w JS jestem całkiem zielony, dopiero zaczynam przygodę z JS.
LBO
hmmm.. ja zrozumialem ze chcesz wyciagnac dane z komorek tabeli w stringu... hmm.. dobrym pomyslem byloby uciecie znacznikow TABLE (albo wogole ich nie wstawianie) a potem (same wiersze i kolumny) wstawic metoda .innerHTML().. poszukaj na forum o innerHTML tematow

to byloby cos w stylu:
Kod
document.getElementById("Tabela").innerHTML(string);
TomASS
Hej, zrobiłem coś takiego:

  1.  
  2. <tbody id="dataTable">
  3.  
  4. </tbody>
  5. </body>
  6.  
  7.  
  8. <script type="text/javascript">
  9. function $(id){
  10. return document.getElementById(id);
  11. }
  12.  
  13. d = $("dataTable");
  14. var dane = '<tr><td>1</td><td>2</td></tr>
  15. <tr><td>3</td><td>4</td></tr>
  16. <tr><td>5</td><td>6</td></tr>
  17. <tr><td>7</td><td>8</td></tr>';
  18. var a = dane.split('</tr>');
  19. var b;
  20. var ilosc_kolumn;
  21. var ilosc_wierszy = a.length-1;
  22. gotowe = new Array();
  23. //a[i][j]
  24. //i - wiersz
  25. //j - kolumna
  26.  
  27. for(i=0;i<ilosc_wierszy;i++){
  28. a[i]=a[i].slice(4,a[i].length);
  29. }
  30.  
  31. for(i=0;i<ilosc_wierszy;i++){
  32. b = a[i].split('</td>');
  33. for(j=0;j<b.length;j++){
  34. b[j]=b[j].slice(4,b[j].length);
  35. }
  36. gotowe[i]=b;
  37. }
  38.  
  39. ilosc_kolumn = b.length-1;
  40.  
  41.  
  42. for(i=0;i<ilosc_wierszy;i++){
  43. tr = document.createElement("tr");
  44. for(j=0;j<ilosc_kolumn;j++){
  45. td = document.createElement("td");
  46. td.innerHTML = gotowe[i][j];
  47. tr.appendChild(td);
  48. }
  49. d.appendChild(tr);
  50. }

(aby działało, to linie po var dane trzeba złożyć razem w jednym wierszu - rozdzieliłem to na 4 wiersze aby lepiej wyglądało to na forum smile.gif )
i w zmiennej dane mam właśnie tą tabelę - działa, ale czy to jest najprostrzy sposób? Moze któreś z czynności można uprościc?
my_identify
Tyle kodu blink.gif. A nie można po prostu div'a wstawić?
  1.  
  2. <div id="dataTable"></div>
  3.  
  4. </body>


i wtedy:
Kod
<script type="text/javascript">
function $(id){
return document.getElementById(id);
}

d = $("dataTable");
var dane = '<table><tbody><tr><td>1</td><td>2</td></tr>
<tr><td>3</td><td>4</td></tr>
<tr><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td></tr></tbody></table>';

d.innerHTML=d;
</script>
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.