Wie man einen schönen "date picker" in PHP?
Ich mache ein paar Experimente mit MySQL und PHP, und ich bin neugierig, schaffen einen schönen "date-picker", z.B. picking-Datum 2010-11 bis 11 (heutiges Datum).
Möchte ich zum speichern Gültiger DATETIME-Werte in meiner MySQL Datenbank und ich möchte eine PHP-Seite zu bieten rolling-Listen für Jahr, Monat und Tag (z.B. 2010-11 bis 11): so vermeiden Sie zwingen den Benutzer zu schreiben, die Daten manuell in ein Formular, und führen Sie dann die Prüfung.
Meine Frage ist, sagen wir, der user wählt Datum 2010-11-31 (die nicht existieren); wie kann ich es schaffen, die einfachen Rollen Listen so dynamisch anpassen? Das heißt, der Benutzer ERSTE nimmt das Jahr, dann der Monat und schließlich der Tag (die dynamisch verändert, um Platz für die tatsächliche Anzahl der Tage in dem betreffenden Monat). Hoffentlich Schaltjahren wird auch gesorgt sein. Nach dem sammeln Sie alle und drückt der Benutzer Einreichen, das Skript legt eine korrekt formatierte DATETIME-Wert in der Datenbank (z.B. YYYY-MM-DD oder YYYYMMDD).
Soweit ich das verstanden habe, wird das DATETIME-Typ ist strict als standard, was bedeutet, der server wird verfolgen ungültige Datumsangaben, die sollte ausreichend leicht zu Fehler-check. Aber ich möchte vermeiden, das zu tun, was ich oben beschrieben habe.
Würden Sie sagen, dass meine beschriebene "Lösung" ist einfach zu implementieren, die nur mithilfe von PHP (und MySQL)? Oder brauche ich einige andere Sachen (z.B. AJAX/JavaScript, JQuery etc.) um dies zu verwalten? Anregungen und Hinweise sind sehr willkommen, vor allem alternative Ansätze für das gleiche problem, das möglicherweise einfacher zu implementieren. Vielen Dank im Voraus!
InformationsquelleAutor BeeDog | 2010-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Menge von JavaScript-basierten Kalender-widgets, die es schon gibt. Wenn Sie nicht suchen, um dies zu tun, zu Lernzwecken, kein Grund das Rad neu zu erfinden.
Server-seitige Validierung ist natürlich noch erforderlich, aber diese widgets machen es unmöglich für den Benutzer, wählen Sie ein ungültiges Datum, unter normalen Umständen.
E. g.
InformationsquelleAutor Pekka 웃
Du versuchen zu lösen, die ein clientseitiges problem der server-Seite hier imho, wenn auch die Validierung kann nie ausgelassen werden server-Seite.
Aber ungültige Datumsangaben, wie dein Beispiel, sind nicht wirklich ein problem, wie können Sie
strtotime
das frisst die meisten Termine schön. Natürlich, in diesem Fall, wird es bewerten, 1. Dezember, aber ein gültiges Datum sowieso. Sie können die Ausgabe vonstrtotime
mitdate
format in eine Datenbank freundlichen Art und Weise.Nehmen, das etwas weiter, wenn Sie wollen, stellen Sie sicher, dass das eingegebene Datum ist nicht nur formal gültig ist, können Sie analysieren, Sie mit
strtotime
, formatieren Sie Sie mitdate
im format es gesendet wurde, um Ihr Skript und vergleichen Sie die beiden Zeichenfolgen. Wenn Sie nicht identisch sind, werden Sie wissen, dass etwas falsch war.Gemäß Ihrer Beispiel:
Sie könnten auch interessiert sein in der
DateTime
Klasse mit neueren PHP-Versionen.InformationsquelleAutor nikc.org
Sollte es keine Notwendigkeit für Ajax. Ajax-Aufrufe zurück an den server, der server aber nicht mehr weiß, über gültige Daten über den client nicht, also kann das alles in javascript. Wenn Sie bereits mit jQuery, verwenden Sie die jQuery-plugin, aber nicht das laden der gesamten Bibliothek jQuery, die nur für diese: das ist übertrieben. Es gibt viele leichte datepickers. Alles, was Sie wollen zu tun ist, laden die freien Tage, wenn jemand ändert das Monat/Jahr (denken Sie daran. Februar: Sie brauchen, um neu zu laden zu Jahr auch ändern).
Wir das getan haben mit einer Methode, die enthält den Namen der Wochentag neben dem Datum:
Sehen http://www.mattkruse.com/javascript/calendarpopup/ für einen anderen Ansatz, der, erscheint ein Kalender. Es ist möglich, integrieren die beiden, Fütterung der Ergebnisse aus dem popup-Kalender wieder in den selectboxes.
Denken Sie daran, dass die Menschen können javascript deaktivieren und alle möglichen seltsamen Sachen auf der client-Seite, so dass server-seitige Validierung ist immer wichtig.
InformationsquelleAutor TRiG
jQuery und anderen JavaScript-frameworks vorhanden sind, die würde die Arbeit machen.
InformationsquelleAutor Sushil Jaiswar
Können Sie nicht. Benötigen Sie eine client-side-Lösung.
PHP befasst sich mit der Verarbeitung von Daten, so müsste man ein JavaScript-powered-Datum-picker, wo der user wählt das Datum, und dann müsste man PHP speichern Sie das ausgewählte Datum in sagen, eine Datenbank, auf die Einreichung eines Formulars.
InformationsquelleAutor Martin Bean