automatyczny zapis pliku html po wprowadzeniu zmiany

0

Witam,
Chciałem napisać aplikację ala grafik. Napisałem skrypt który po kliknięciu w komórkę tabeli wprowadza do niej odpowiednią zawartość diva. Wszystko ładnie pięknie ale po odświeżeniu strony znowu mam pustą tabelę. Nie wiem jak zrobić żeby najlepiej po każdorazowej zmianie w komórce plik się zapisywał. W załączniku obraz z czystą tabelą i uzupełnioną.

0

Możesz użyć localStorage aby zapisać dane w przeglądarce. W funkcji odpowiadającej za wypełnienie diva tekstem zapisujesz dane poprzez:
localStorage.setItem('calendar', yourData);
Następnie onload wczytujesz dane poprzez:
const retrivedData = localStorage.getItem('calendar');
Istotne jest tutaj abyś przy używaniu localStorage zamknął instrukcje wewnątrz bloku try...catch bo jeśli np. localStorage zostanie wyczyszczone to przy próbie odczytania zostanie wyrzucony error i program się posypie

0

Albo stwórz sobie bardzo prosty serwer z bazą danych w której będzie na początek jedna tabelka, która będzie przechowywać te informacje. Taki prosty serwer możesz napisać w PHP lub NodeJS, a bazę postawić u siebie lokalnie, za pomocą XAMPP lub jakiegoś serwera SQL. Sam tak robiłem, dopóki nie miałem problemów z XAMPP, później na darmowym hostingu z bazą danych i obsługą PHP postawiłem wszystko. Za pomocą XMLHttpRequest w JS lub AJAX w jQuery mógłbyś te dane pobierać z serwera :)

0

Ok, już wiem że nie da się tak tego zapisać jak bym chciał. Niestety zapis danych w przeglądarce odpada bo dane mają być widoczne dla wszystkich. Zostaje baza danych tylko jak teraz to zrobić żeby to miało ręce i nogi, nie chciałbym każdej komórki osobno wysyłać tylko najlepiej całą tabele z danymi chyba. Wysyłam w załączniku moją aplikację. (najpierw klikamy na button z godziną potem dbclick na tabelę)

0

Pomysł z wysyłaniem całej tabelki jest nie najlepszy - załóżmy sytuację, gdzie dwóch użytkowników jednocześnie coś zmienia, różne wiersze ale w jednej tabelce i w podobnym czasie będą chcieli zapisać. W tym przypadku dane drugiej osoby zostaną zapisane wraz z danymi, których nawet nie dotykała, przez co może dojść, że dane pierwszej osoby będą zapisane przez bardzo krótką chwilę - zostaną nadpisane. No chyba że zaimplementujesz WebSocket. Ale używając AJAX wysyłane zapytania będą prawie nieodczuwalne - wtedy możesz sobie pozwolić na zapisywanie każdej z komórki z osobna lub ewentualnie jednego wiesza.

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