Ergebnis 1 bis 10 von 10

Thema: Kalenderfeld mit "heute" vorbelegen

  1. #1
    Contao-Nutzer Avatar von liebling65
    Registriert seit
    23.01.2011.
    Ort
    Regensburg
    Beiträge
    198

    Standard Kalenderfeld mit "heute" vorbelegen

    Hallo Gemeinde,

    ich wuerde gerne ein Kalenderfeld "vorbelegen". Es gibt das Kalenderfeld "Anreise" - dort soll das heutige Datum rein.
    Ich hab das schonmal wo gefunden, aber finde es nicht mehr. Man muss wohl im Feld "Standard-Wert" einen Wert setzen - aber welchen?

    Entsprechend soll dann im Feld "Abreise" der morgige Tag stehen - bzw. immer ein Tag mehr als bei "Anreise" (wenn der User den Anreisetag aendert).

    Das wissen doch bestimmt einige, oder?

    thanks
    Erich

    Contao 3.2.3

  2. #2
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Für das aktuelle Datum kannst du ganz einfach die Inserttags mit PHP date verwenden

    Code:
    {{date::d.m.Y H:i}}
    Für Morgen habe ich keine Lösung

  3. #3
    Contao-Nutzer Avatar von liebling65
    Registriert seit
    23.01.2011.
    Ort
    Regensburg
    Beiträge
    198

    Standard

    ausgezeichnet - funktioniert schon mal

  4. #4
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Es gibt eine Erweiterung oder Anleitung für eigene Inserttags. Hier könnte man so eine Datumsberechnung dahinterlegen. Musst mal suchen.

  5. #5
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    hab ich irgendwo rumliegen - falls Interesse besteht?

  6. #6
    Contao-Nutzer Avatar von fivebytes
    Registriert seit
    18.01.2013.
    Ort
    Iserlohn
    Beiträge
    93

    Standard

    Hallo Erich,

    grundsätzlich kannst Du das natürlich über den Standard-Wert und Inserttags lösen, aber spätestens, wenn der User Daten eingibt, muss Du den Abreisetag ja dynamisch verändern. Das würde ich dann per Script lösen und die Vorbelegung gleich mit, hier mal ein ungetestetes Script was dies erledigen sollte (Script-Profis würden da wahrscheinlich noch eine ganze Ecke weniger Code benötigen ;-)):
    HTML-Code:
    <script>
    $('ctrl_anreise').addEvent('change',function() {
    	if ( this.get("value") ) 
            {
                   arrDate = this.get("value").split(".");
                   var anreise_neu = new Date(arrDate[2],arrDate[1],arrDate[0],0,0,0);
            }
    	setDatum (anreise_neu);
    });
    
    window.addEvent('domready', function() {
    	setDatum (new Date());
    });
    
    function setDatum (datum_anreise)
    {
            var datum_abreise = new Date(datum_anreise.getTime() + (24 * 60 * 60 * 1000));
    
    	document.getElementsByName("anreise")[0].value = datum_anreise.getDate() + '.' + datum_anreise.getMonth() + '.' + datum_anreise.getFullYear();
            document.getElementsByName("abreise")[0].value = datum_abreise.getDate() + '.' + datum_abreise.getMonth() + '.' + datum_abreise.getFullYear();
    }
    </script>
    Ausgehend davon, dass die beiden Felder anreise und abreise als Namen haben. Bei dem ersten Scriptaufruf ($('ctrl_anreise')) musst Du mal schauen, wie genau die ID von Deinem Feld ist, bei Nutzung efg dürfte das z.B. eher wie $('ctrl_123') aussehen und nicht mit dem Feldnamen übereinstimmen.

    Ach ja der erste Part im Script benötigt MooTools, bei JQuery oder mit reinem JavaScript, müsste das entsprechend angepasst werden. Das Script selber einfach als letztes Element im Formular anlegen (eigener HTML-Code).
    Geändert von fivebytes (02.10.2014 um 19:13 Uhr)
    Entspannte Grüße aus Iserlohn
    Stefen

    fivebytes.de - Internetentwicklung & Webdesign | Mit Contao umgesetzt Speedy´s Hamsterseiten

  7. #7
    Contao-Nutzer Avatar von Tompaianer
    Registriert seit
    16.04.2010.
    Ort
    Dresden
    Beiträge
    65

    Standard Datum ist falsch

    Hallo,
    ich habe das Script von fivebytes eingebaut. Nur zeigt es nicht das aktuelle Datum (genau einen Monat früher). Was mache ich falsch?
    Zur Sicherheit habe ich das aktuelle Datum darüber gesetzt per Inserttag {{date::d.m.Y}}
    datum.jpg

  8. #8
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.030

    Standard

    du schreibst dir eine kleine erweiterung mit deinen inserttags, einen inserttag für heute, einen für morgen und diese inserttags gibst du in die standardwerte ein... lg.

  9. #9
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von Tompaianer Beitrag anzeigen
    Nur zeigt es nicht das aktuelle Datum (genau einen Monat früher). Was mache ich falsch?
    Das verwirrt mich jetzt etwas. Ich hätte es genau anders herum erwartet, denn Date() beginnt beim Monat mit 0

    https://developer.mozilla.org/de/doc...l_Objects/Date

    Edit: der Fehler ist zwei mal da:

    Code:
    arrDate = this.get("value").split(".");
    var anreise_neu = new Date(arrDate[2],arrDate[1],arrDate[0],0,0,0);
    müsste

    Code:
    arrDate = this.get("value").split(".");
    var anreise_neu = new Date(arrDate[2],arrDate[1]-1,arrDate[0],0,0,0);
    sein und

    Code:
    datum_anreise.getDate() + '.' + datum_anreise.getMonth() + '.' + datum_anreise.getFullYear()
    müsste

    Code:
    datum_anreise.getDate() + '.' + (datum_anreise.getMonth()+1) + '.' + datum_anreise.getFullYear()
    sein
    Geändert von fiedsch (03.06.2015 um 18:48 Uhr)

  10. #10
    Contao-Nutzer Avatar von Tompaianer
    Registriert seit
    16.04.2010.
    Ort
    Dresden
    Beiträge
    65

    Standard Danke Fiedsch

    Habe das Script jetzt geändert. Auch bei der Abreise war ein Fehler. Jetzt funktioniert es wie gewollt. Danke
    HTML-Code:
    <script>
    $('ctrl_16').addEvent('change',function() {
    	if ( this.get("value") ) 
            {
                   arrDate = this.get("value").split(".");
    			   var anreise_neu = new Date(arrDate[2],arrDate[1]-1,arrDate[0],0,0,0);
            }
    	setDatum (anreise_neu);
    });
    
    window.addEvent('domready', function() {
    	setDatum (new Date());
    });
    
    function setDatum (datum_anreise)
    {
            var datum_abreise = new Date(datum_anreise.getTime() + (24 * 60 * 60 * 1000));
    
    	document.getElementsByName("anreise")[0].value = datum_anreise.getDate() + '.' + (datum_anreise.getMonth()+1) + '.' + datum_anreise.getFullYear();
            document.getElementsByName("abreise")[0].value = datum_abreise.getDate() + '.' + (datum_abreise.getMonth()+1) + '.' + datum_abreise.getFullYear();
    }
    </script>

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •