Kilka pytań dotyczących tabelek w HTML

0

Witam,
mam pytanie odnośnie czy da się ustawić w td kilka wartości to znaczy

  <td>12,5,7,9</td> 
  1. Chodzi mi o porównanie we funkcji w JS (czy funkcja wykryje oddzielne liczby, czy potraktuje je jako wartość jedną). Mógł bym zrobić oddzielnie każda liczbę w td, ale chciałbym tego uniknać
  2. Jak stworzyć, żeby w jednej kolumnie był status (wykonania danego zadania) (wykonano lub nie wykonano). Interesuję mnie ustawianie tego z poziomu strony, czyli klikając na tabele danego zadania będę mógł sobie utworzyć status. Jak do tego najłatwiej podejść? Baza danych i php czy jakoś inaczej można to zrobić?
1

Da się ustawić kilka wartości w jednej komórce.

  1. Jeśli liczby będą całkowite to wystarczy, że napiszesz funkcję która rozbija liczbę po przecinkach (https://www.w3schools.com/jsref/jsref_split.asp).
  2. To chcesz w końcu utworzyć status czy zaktualizować? Rozumiem że zadanie domyślnie jest niewykonane, Ty klikasz w jakiś przycisk w komórce tabeli i status zmienia się na wykonany. Jeśli tak - to wystarczy dać odpowiednie ID rekordu w linku i tyle (wtedy masz przeładowanie strony), możesz też użyć ajaxa (nie będzie przeładowania strony)

Nieważne jest czy po stronie backendu jest php czy cokolwiek innego, nieważne jest też czy to baza sql, nosql czy jakiś plik.

0

Tak, mam domyślnie, że zadanie jest nie wykonane i klikając przycisk w danej komórce chce, aby status zmienił się na wykonany. Nie rozumiem za bardzo jak mam dać odpowiednie ID w linku.
Możesz mi jakoś jaśniej to wyjaśnić?

0

Napisz najpierw skąd bierzesz te dane, które chcesz wsadzać do tej tabeli i jaką mają strukturę.

0

Dokładnie to będzie jak w poniższym przykładzie.
https://jsfiddle.net/49ft7Led/
Jeśli kliknę (+) w danej komórce to zmieni status na wykonany. Tylko nie wiem jak do tego podejść.

0

Nadal nie wiem skad bierzesz dane, sam je wymyslasz? bo jesli tak to potrzebujesz jednoznaczego identyfikatora rekordu.

0

Można tak powiedzieć. Jeśli kliknę na + to powinno dodać mi w trzeciej kolumnie napis "wykonano". Czyli sam je wymyślam. Teraz potrzebuję, aby tekst został dodany to danej komórki i zapisany.

0

axelbest
Co masz na myśli z identyfikatorem rekordu ? Czy do tego potrzebuje baze danych?

0

Żeby coś Ci zmieniło stan, musisz jednoznacznie wiedzieć o jakiś wiersz chodzi. Możesz je np numerować nadajac kolejne liczby w atrybucie class/id elementu TR. Mając ta informacje wiesz już o jaki wiersz chodzi. Następnie dopisujesz akcje (link/skrypt) która ma Ci zmieniać stan, wykorzystując właśnie owy identyfikator (jednak polecałbym bardziej atrybut id niż klasę). Dzięki temu możesz zidentyfikować co kliknąłes, tak jak masz na wielu stronach internetowych linki w postaci www.costam.pl/id=5, mając informacje o id, musisz obsłużyć działanie po takim kliknięciu. Poszukaj w necie haseł typu JavaScript dynamic field change, nie chce Ci tu dużo namieszać, bo chyba nie ogarniasz za bardzo js/baz/phpa (lub innego backendowego języka).
Znak plusa przy zmianie stanu nie musi być typowym linkiem, może być np ostylowanym w cssie divem, który będzie obsluzony przez skrypt.

W Twoich postach nie wiadomo też gdzie, kiedy i jak chcesz przechowywać stan tych zmian, a sposobów jest multum. Możesz zapisywać stan w ciasteczkach, pliku, bazie danych, sesji, local storage, w chmurze ale to już mogą być dla Ciebie zbyt wysokie progi. Mimo wszystko ucz się i przejdź jakieś kursy/tutoriale, bo to o co pytasz to raczej podstawy.

0

Dzięki za wyczerpującą odpowiedź. Otóż zrobiłem funkcje, która jest podpięta pod przycisk:

function dd() {
    localStorage.setItem('ad', 'zrobiono');
   var valued = localStorage.getItem('ad');
    var insert= document.getElementById("ad").innerHTML = valued;
       
   }

Teraz po odświeżeniu strony nadal jest domyślna wartość "nie zrobiono"
Mam utworzyć następną funkcję, która jest wykonywana po onload?

1 użytkowników online, w tym zalogowanych: 0, gości: 1