Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [DOM] Operacje na tabelkach, Jak dodać nowy wiersz, komórkę itp.
lukasz_sosnowiec
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.02.2006

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


Tak jak w temacie. Poprosiłbym kogoś o podanie wzoru poleceń za pomocą których można dodać nowy wiersz (wraz z komórkami) i wypełnić go dowolnym tekstem.

Ja próbowałem coś takiego
Kod
document.getElementById("tabela").insertRow ();
document.getElementById("tabela").rows[0].insertCell ();
document.getElementById("tabela").rows[0].cells[0].innerHTML = "tekst"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Joy-machine
post
Post #2





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 2.02.2007

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


Hmmm
1. używaj $ zamiast document.getElementById -> google,
2. poczytaj o appendChild -> google,
3. przyda się także getElementsByTagName -> google
Go to the top of the page
+Quote Post
lopik
post
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

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


  1. function addRow()
  2. {
  3. row = document.createElement('tr');
  4. td = document.createElement('td');
  5. txt = document.createTextNode('text ');
  6. td.appendChild(txt);
  7. row.appendChild(td);
  8.  
  9. get = document.getElementById('tab');
  10. get.appendChild(row);
  11. }


Na szybko, bo już nie myślę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Resztę już sobie zrobisz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował lopik 5.02.2007, 00:44:03
Go to the top of the page
+Quote Post
lukasz_sosnowiec
post
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.02.2006

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


Działa tylko na Operze ... ale dzięki - zawsze to już coś. Może niedługo dojdę jak zrobić żeby zadziałało w IE i Mozilli.

Ten post edytował lukasz_sosnowiec 5.02.2007, 11:56:34
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #5





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(Joy-machine @ 4.02.2007, 23:36:42 ) *
używaj $ zamiast document.getElementById
Tak? Joy-machine jeśli chcesz używać $ zamiast getElementById najpierw musisz napisac sobie funkcję...

lukasz_sosnowiec HTML DOM dodaje kilka właściwości i metod dla elementów <table />, <tbody /> i <tr /> dzięki czemu budowanie tabeli może być prostsze: DOM Table, DOM TableRow i DOM TableCell (dwa pierwsze linki powinny Cię zainteresować najbardziej).

Przykład:
  1. var oTable = document.createElement("table");
  2. oTable.setAttribute("border", "1");
  3.  
  4. var oTBody = document.createElement("tbody");
  5. oTable.appendChild(oTBody);
  6.  
  7. // tworzenie wiersza
  8. oTBody.insertRow(0);
  9. oTBody.rows[0].insertCell(0);
  10. oTBody.rows[0].cells[0].appendChild(document.createTextNode("Komórka 1"));
  11. oTBody.rows[0].insertCell(1);
  12. oTBody.rows[0].cells[0].appendChild(document.createTextNode("Komórka 2"));
  13.  
  14. document.body.appendChild(oTable);
Go to the top of the page
+Quote Post
Joy-machine
post
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 2.02.2007

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


"Tak? Joy-machine jeśli chcesz używać $ zamiast getElementById najpierw musisz napisac sobie funkcję..."

No tak, alez trudność napisać taką funkcję, a kod od razu przyjemniejszy i w pracy i w oglądaniu. Ale zapomniaełem, tutaj trzeba wszystko napisać, bo google nie ostnieje.
Go to the top of the page
+Quote Post
lukasz_sosnowiec
post
Post #7





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.02.2006

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


Cytat(Joy-machine @ 5.02.2007, 13:15:50 ) *
"Tak? Joy-machine jeśli chcesz używać $ zamiast getElementById najpierw musisz napisac sobie funkcję..."

No tak, alez trudność napisać taką funkcję, a kod od razu przyjemniejszy i w pracy i w oglądaniu. Ale zapomniaełem, tutaj trzeba wszystko napisać, bo google nie ostnieje.


Więc skoro istnieje google to jaki jest sens istnienia jakichkolwiem for gdzie można zadać pytania komuś mądrzejszemu według ciebie? Nie trzeba być mądrym żeby odesłać kogoś do google.

Co do problemu to udało mi się.
W zasadzie próbowałem tak od początku - brakowało tylko podania argumentów w insertRow() i insertCell (). Co prawda dokumentacji mówiła że domyślnie przy nie podaniu argumentu nowy wiersz, komórka będzie doczepiany na koniec - w praktyce działa tylko na Operze ... reszta wymaga argumentu.

Z góry dziękuje za pomoc bo naprowadziła mnie do rozwiązania problemu. Przykład poniżej - może komuś się kiedyś przyda.
Kod
<html xmlns="http://www.w3.org/1999/xhtml" lang="pl">
<head>
<script type="text/javascript">

function fun () {
    with (document.getElementById ("tabela")) {
        insertRow(1);
        rows[1].insertCell(0);
        rows[1].insertCell(1);
        rows[1].cells[0].innerHTML = "2";
        rows[1].cells[1].innerHTML = "Kamil";
    }
}

</script>
    
</head>
<body onload="fun ();">
<table border="1" id="tabela">
    <tbody>
        <tr>
            <td>1</td>
            <td>Ania</td>
        </tr>
    </tbody>
</table>
</body>
</html>


Ten post edytował lukasz_sosnowiec 5.02.2007, 13:38:11
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 17:28