automatyczny zapis pliku html po wprowadzeniu zmiany

automatyczny zapis pliku html po wprowadzeniu zmiany
DA
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:2
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ą.

edytowany 1x, ostatnio: daniels
Silv
Ale czemu chcesz zmieniać HTML, nie mówiąc już o tym, że to ten sam HTML, a w dodatku ten sam plik – bo tak zrozumiałem? Czy nie lepiej, wydaje mi się, tworzyć jakiś plik .json i te dane potem wczytywać za pomocą np. Javascript?
Jakub Wojtyra
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:8
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

Mateusz Jodelka
  • Rejestracja:około 7 lat
  • Ostatnio:około 7 lat
  • Postów:3
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 :)

DA
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:2
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ę)

Mateusz Jodelka
  • Rejestracja:około 7 lat
  • Ostatnio:około 7 lat
  • Postów:3
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.