Peter: Smarty - html_select_date

Hallo

Vielleicht trivial aber irgendwie ist da der Wurm bei mir drinnen.

Ich gebe mir mit "html_select_date" wie folgt die Datumsfelder aus.

{html_select_date year_empty="" month_empty="" day_empty="" start_year="-20" end_year="+5"}

funktioniert bestens

Mit year_empty="" month_empty="" day_empty="" füge ich zusätzlich leere auswahlfelder hinzu

aber egal was ich mache, es selektiert mir immer das aktuelle Datum vor außer ich gebe mit "time" einen expliziten Wert an. Was aber wenn ich kein bestimmtest Datum vorselektiert haben haben will sondern die extra geaddeten. Leerfelder. Ich verstehe gerade den sind von year_empty nicht.

Den Sourcecode vom zugehörigen Smartyplugin hab ich mir kurz angesehen, aber das ist so ein Hack, will mir das zerpflücken wirklich ersparen. Hat jemand einen schnellen Tip für mich

dank lg Peter

  1. Hallo Peter,

    Ich gebe mir mit "html_select_date" wie folgt die Datumsfelder aus.

    {html_select_date year_empty="" month_empty="" day_empty="" start_year="-20" end_year="+5"}

    *grusel* ich wusste ja gar nicht, dass Smarty so einen Unsinn auch kann ... Drei Auswahlfelder zum Eingeben ist imho so ziemlich das übelste was man seinen Usern zumuten kann wenn die ein Datum eingeben sollen. Verwende besser ein einfaches Textfeld in das das komplette Datum eingegeben wird, optional kannst du dem User ja noch einen kleinen Kalender anbieten der per Link eingeblendet werden kann.

    aber egal was ich mache, es selektiert mir immer das aktuelle Datum vor außer ich gebe mit "time" einen expliziten Wert an. Was aber wenn ich kein bestimmtest Datum vorselektiert haben haben will sondern die extra geaddeten. Leerfelder.

    In der Doku steht bei der Beschreibung der *_empty-Attribute dass man im time-Attribut die Angabe für Jahr, Monat bzw. Tag auch jeweils leerlassen kann um das leere option-Element auszuwählen. Wenn du also bei allen drei Auswahllisten das leere Feld auswählen willst, musst du time="--" verwenden, wobei auch ein ungültiges Datum wie 0000-00-00 den gewünschten Effekt hat.

    Gruß,
    Tobias

    1. Hallo Thobias
       »» aber egal was ich mache, es selektiert mir immer das aktuelle Datum vor außer ich gebe mit "time" einen expliziten Wert an. Was aber wenn ich kein bestimmtest Datum vorselektiert haben haben will sondern die extra geaddeten. Leerfelder.

      Wenn du also bei allen drei Auswahllisten das leere Feld auswählen willst, musst du time="--" verwenden, wobei auch ein ungültiges Datum wie 0000-00-00 den gewünschten Effekt hat.

      Hmm das find ich jetzt aber geil ;) Weil ich an "time" eine unix Timestamp übergebe. Das funtioniert auch einwandfrei. Jetzt dacht ich mir wenn kein Datum gesetzt ist übergebe ich "null" oder "leerString".. denkste das igonriert er. Aber "--" funktioniert ;)

      Thx Peter