Hallo Zusammen,
ich möchte eine einfache Web App programmieren die folgendes können soll
:
- Datum eingabe
- Name Eingeben
- 3 Klick-Button die angeklickt werden können und die jeweilligen Klicks
auf die Buttons mitzählen (zb Grüner Button wurde 3 mal betätigt, Roter
Button 5 mal usw)
Die eingegebenen Daten und die Anzahl der Klicks soll in eine Datenbank
gespeichert werden. Dies soll sowohl online als auch offline
funktionieren.
Ich habe gedacht die App mit Html5, Javascript und Css zu programmieren,
da sie auf einem Smartphone/Tablett und Laptop funktionieren soll.
Hat jemand sowas schon mal gemacht?
Wie kann ich die Daten auf eine Datenbank speichern und einer Verbindung
zum Server herstellen?
Welche SPrache eignet sich da? Myqsl?
Ich würde mich sehr übe eure Antwort freuen! :)
Vielen Dank
asp.net core mit dem Entity-Framework funktioniert mit dem "Code first
approach".
https://www.entityframeworktutorial.net/code-first/what-is-code-first.aspx
D.h. du brauchst Dich um die DB gar nicht zu kümmern: Du legst einfach
Deine Modelle/Klassen an, und die Migration in die Datenbank erledigt VS
2017 voll-automatisch.
Am einfachsten wäre das wohl in HTML+PHP. Als Datenbank würde ich MySQL
nehmen, aber jede Datenbank sollte gehen. Irgend sowas (alles
ungetestet):
index.php
Die Daten (Datum, Name, Anzahl Klicks Button 1, Anzahl Klicks Button 2,
Anzahl Klicks Button 3) schickst Du einfach als HTTP POST Request an
Deinen HTTP-Server. z.B. durch ein gewöhnliches HTML-Formular mit 5
entsprechenden Feldern.
Auf Deinem Server nimmt dann irgendein (PHP/whatever) Script die per
HTTP-Request gesendeten Daten entgegen und speichert sie ab.
Üblicherweise (aber nicht notwendigerweise) in einer SQL-Datenbank.
Wie genau Du das machst, hängt natürlich davon ab, was Du für
Möglichkeiten auf Deinem HTTP-Server hast etc. Falls Du ein einfaches
Webhosting-Angeboten nutzt, dann steht Dir möglicherweise eh nur PHP zur
Verfügung. Ich hingegen nehme für so etwas üblicherweise das in Python
geschriebene, Open Source-Web Framework "django":
https://www.djangoproject.com/
Was ich nicht 100%ig verstanden habe, ist das hier:
"Die eingegebenen Daten und die Anzahl der Klicks soll in eine Datenbank
gespeichert werden. Dies soll sowohl online als auch offline
funktionieren."
Was genau meinst Du damit, dass es "offline funktionieren" soll? Die
Daten kannst Du ja logischerweise nur dann in die Datenbank auf dem
Server speichern, wenn Smartphone/Tablet/Laptop mit dem Server
kommunizieren kann, also gerade online ist.
> Die Daten kannst Du ja logischerweise nur dann in die Datenbank auf dem> Server speichern, wenn Smartphone/Tablet/Laptop mit dem Server> kommunizieren kann, also gerade online ist."
Ich habe das so verstanden, dass im Offline - Betrieb die eingegebenen
Daten lokal gespeichert werden, und bei Netzwiederherstellung die lokale
Datenbank mit der online-Datenbank synchronisiert wird.
>> Ich habe das so verstanden, dass im Offline - Betrieb die eingegebenen> Daten lokal gespeichert werden, und bei Netzwiederherstellung die lokale> Datenbank mit der online-Datenbank synchronisiert wird.
Ja genau so habe ich mir das vorgestellt!
DPA schrieb:> Am einfachsten wäre das wohl in HTML+PHP. Als Datenbank würde ich> MySQL> nehmen, aber jede Datenbank sollte gehen. Irgend sowas (alles> ungetestet):>> index.php<?php> $red = +isset($_POST["button"]["red"]);> $green = +isset($_POST["button"]["green"]);> $blue = +isset($_POST["button"]["blue"]);>>...
Vielen Dank das ist schon sehr gut, jedoch wird in diesem Beispiel bei
jedem Klick auf einen der Button (zb Rot) das Datum gelöscht bzw es muss
neu eingegeben werden.
Wie kann man es machen, das zb für das jeweilige Datum alle Klicks auf
die Buttons gespeichert / mitgezählt werden und das Datum nur geändert
wird, wenn der Name geändert wird?
pierre schrieb:> Wie kann man es machen, das zb für das jeweilige Datum alle Klicks auf> die Buttons gespeichert / mitgezählt werden und das Datum nur geändert> wird, wenn der Name geändert wird?
Geht mit Ajax.
A. F. schrieb:> pierre schrieb:>> Wie kann man es machen, das zb für das jeweilige Datum alle Klicks auf>> die Buttons gespeichert / mitgezählt werden und das Datum nur geändert>> wird, wenn der Name geändert wird?>> Geht mit Ajax.> <form method="post" action="#" onsubmit="return DoSubmit()">> <label>>
Ich habe es so gemacht das ich "type=submit" zu "type=button" geändert
habe
pierre schrieb:> Vielen Dank das ist schon sehr gut, jedoch wird in diesem Beispiel bei> jedem Klick auf einen der Button (zb Rot) das Datum gelöscht bzw es muss> neu eingegeben werden.
Normalerweise würde ich das die $_POST Daten wieder ausgeben:
Gleiches bei name. Da name und datum hier aber eventuell länger
gebraucht werden, könnte man es eventuell noch in $_SESSION oder
$_COOKIE zwischenspeichern.
Da werte aber auch offline zwischen gespeichert werden sollte, ist es
eventuell besser, das Laden und Senden der Daten vom/zum Server
statdessen gleich mit JS & fetch zu machen, und php nur in einer
separaten Datei zum Speichern und Zurückgeben der Daten vom Server zu
verwenden, mit einer art REST interface. Dann kann man, wenn das
Speichern wegen z.B. fehlender Internetverbindung nicht klappt, das
erstmal lokal speichern. localStorage ist dafür recht nützlich, aber
auch andere dinge, wie z.B. IndexedDB sind möglich.
Um eine Webseite offline verfügbar zu machen, gibt es dann mehrere
Methoden. Man könnte ServiceWorker verwenden, oder einen
applicationcache. Mit entsprechenden manifesten kann man das auch
optimieren für das Speichern als App-Artigen Shortcut auf dem Home
Screen von Handies usw. Alternativ kann man mit z.B. Cordova auch eine
lokale App aus einer Webseite machen.
pierre schrieb:> Ich habe es so gemacht das ich "type=submit" zu "type=button" geändert> habe
Dann sendet es aber auch nichts mehr zum Server...
pierre schrieb:> Wie kann man es machen, das zb für das jeweilige Datum alle Klicks auf> die Buttons gespeichert / mitgezählt werden
Was genau zählen die Buttons. Alle klicks beliebiger personen? Alle von
momentanem name? Alle von name an datum?
DPA schrieb:> Was genau zählen die Buttons. Alle klicks beliebiger personen? Alle von> momentanem name? Alle von name an datum?
Jeder Button steht für eine gewisse Aktion bei einem Brettspiel, wurde
zb ein Punkt gemacht, wird ein Button geklickt.
Wenn 5 Punkte erzielt worden sind, wird der Button 5 mal betätigt.
Wird zb ein Foul gemacht, dann wird ein anderer Button begtätigt, fouls
werden gezählt.
pierre schrieb:> Also ich habe die Benutzeroberfläche bereits geschrieben,pierre schrieb:> <html><head>> [...]> </body></html>
also eine web-oberfläche
pierre schrieb:> Die Daten sollen auch offline gespeichert werden, sodass die> eingegebenen Daten bei Netzverbindung synchronisiert werden.
und wie soll die oberfläche offline auf dein gerät kommen?
bzw. wie wir der self-post verarbeitet?
mir scheint, irgendwas an dem konzept hinkt noch ein bisschen...