Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Problem ze skryptem do zapisu danych z okienka do wiersza
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
martinstw
Witam!

Czy mógłby mi ktoś doradzić jak można zapisywać dane z pól input w okienku do wiersza tabeli?
Okienko otwiera się po naciśnięciu na przycisk Edytuj.


Kod wygląda następująco: http://www.wklej.org/hash/c8e06aa6d6/
Rafal Filipek
Jakoś nie podoba mi się to tworzenie dodatkowych table i tak dalej. To co podałem poniżej nie sprawdzałem tylko w ie6.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <script type="text/javascript">
  3. function editRow(button){
  4. var i, j, node;
  5. var row = button.parentNode.parentNode;
  6. var elements = row.getElementsByTagName('span');
  7. var count = elements.length;
  8. for(i=0; i < count; i++){
  9. var span = elements[i];
  10. span.style.display = 'none';
  11. if(span.nextSibling == null){
  12. try{ input = document.createElement('<input />'); }
  13. catch(e){ input = document.createElement('input'); }
  14. span.parentNode.appendChild(input);
  15. }else{
  16. input.style.display = 'inline';
  17. input = span.nextSibling;
  18. }
  19. input.value = span.innerHTML;
  20. }
  21.  
  22. }
  23. function stopEditRow(button){
  24. var i, j, node;
  25. var row = button.parentNode.parentNode;
  26. var elements = row.getElementsByTagName('span');
  27. var count = elements.length;
  28. for(i=0; i < count; i++){
  29. var span = elements[i];
  30. var input = span.nextSibling;
  31. span.style.display = 'inline';
  32. span.innerHTML = input.value;
  33. input.style.display = 'none';
  34.  
  35. }
  36. }
  37. </script>
  38. </head>
  39. <table border="1">
  40. <tr>
  41. <th></th>
  42. <th>Kolumna 1</th>
  43. <th>Kolumna 2</th>
  44. <th>Kolumna 3</th>
  45. <th>Kolumna 4</th>
  46. <th>Opcje</th>
  47. </tr>
  48. <tr>
  49. <td><input type="checkbox" /></td>
  50. <td><span>wartość 1</span></td>
  51. <td><span>wartość 2</span></td>
  52. <td><span>wartość 3</span></td>
  53. <td><span>wartość 4</span></td>
  54. <td>
  55. <button>usuń</button>
  56. <button onclick="editRow(this);">edytuj</button>
  57. <button onclick="stopEditRow(this);">anuluj</button>
  58. </td>
  59. </tr>
  60. </table>
  61. </body>
  62. </html>
hwao
Cytat
Witam!

Czy mógłby mi ktoś doradzić jak można zapisywać dane z pól input lub textarea w okienku do wiersza tabeli?
Okienko otwiera się po naciśnięciu na przycisk Edytuj, następnie wypełnia sie poszczególne inputy i klika w zapisz Zapisz dane w wierszu i są one umieszczane w wierszu.

Kod wygląda następująco:

http://www.wklej.org/id/35435/

I dodatkowo, żeby dane wysyłane były do serwera i zapisywane w bazie danych.

Czy mógłby mi ktoś w tym pomóc?


Proszę kontynuować wątek w tym temacie.
martinstw
Problem jest jeszcze taki, że trzeba uwzględnić ustaloną szerokość komórek w tabeli. W twoim przypadku szerokość się zmienia. Dodatkowo może być treść w jednej komórce i jeśli nie mieści się w ustalonej szerokości komórki to zostaje przeniesiony niżej (na zasadzie entera).

Jak można takie coś uwzględnić?
Rafal Filipek
nie mam pojecia o co ci chodzi z ta zmiana szerokosci i dlaczego u mnie sie zmienia. mozesz troche jasniej.
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.