Andreas Vogt: Tag vor/zurück

Hallo,
ich habe in einem Formular ein Eingabefeld wo ich das aktuelle Datum (mit php, strftime() Funktion) als Vorgabewert habe.
Jetzt möchte ich hinter dem Eingabefeld 2 Bilder plus.gif und minus.gif haben, und bei Klick auf das jeweilige Bild den Vorgabewert um 1 Tag erhöhen bzw. verringern.

Mein Problem dabei ist, wie kann ich das veränderte Ergebnis quasi zwischenspeichern damit man ein zweites mal ein Tag addieren/abziehen kann.

Hoffe mein Problem ist verständlich, ansonsten bitte nachfragen.

Was ich bislang habe:

$content .= "
<script language="JavaScript">
startday = "".strftime("%d", time())."";
startmonth = "".strftime("%m", time()).""
startyear = "".strftime("%Y", time()).""

function nextday() {  
  
}  
  
function prevday() {  
  
}  

</script>";

  1. Mein Problem dabei ist, wie kann ich das veränderte Ergebnis quasi zwischenspeichern damit man ein zweites mal ein Tag addieren/abziehen kann.

    Das solltst du garnicht - du solltest eher live den aktuellen Wert aus dem Feld lesen, parsen um einen Tag erhöhen oder verringern und wieder zurückschreiben.

    Dann brauchst du überhaupt keine Variable sondern überhaupt nur dein Feld.

    1. @@suit:

      nuqneH

      Dann brauchst du überhaupt keine Variable sondern überhaupt nur dein Feld.

      <input type="date"/> Dann brauchst du nicht einmal JavaScript (funktioniert bereits in Webkits).

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. <input type="date"/> Dann brauchst du nicht einmal JavaScript (funktioniert bereits in Webkits).

        In Presto funktioniert die Sache auch schon ;)

        Und für alles andere gibt's jQuery-UI-Datepicker :p

    2. Hallo,
      sorry, hab meinen Beitrag aus versehen in einem anderen Thread gepostet.
      Ich poste nochmals:

      Hallo,
      soweit hat das jetzt funktioniert.
      Was aber nicht funktioniert ist, wenn man das Datum händisch überschreibt, und dann die +/- Bilder anklickt, dann wird das ursprüngliche Datum welches im Value steht verwendet statt des neu eingefügten.

      Hier mal das JavaScript:

      <script language="JavaScript">
      var actdate = document.getElementsByName("dodate")[0].value;
      var day = parseInt(actdate.substr(0,2));
      var month = parseInt(actdate.substr(3,2));
      var year = parseInt(actdate.substr(6,4));

      function nextday() {
      day = day + 1;
      if (day > daysInMonth(month, year)) {
      day = 1;
      month = month + 1;
      if (month > 12) {
      month = 1;
      year = year + 1;
      }
      }
      var outdate = day+'.'+month+'.'+year;
      document.getElementsByName("dodate")[0].value = outdate;
      }

      function prevday() {
      alert(actdate);
      day = day - 1;
      if (day < 1) {
      if (month > 1){
      day = daysInMonth(month-1, year);
      month = month - 1;
      }
      else {
      day = daysInMonth(month-1,year-1);
      month = 12;
      year = year - 1;
      }
      }
      var outdate = day+'.'+month+'.'+year;
      document.getElementsByName("dodate")[0].value = outdate;
      }
      </script>

      Gruß Andreas

      1. Hi,

        Was aber nicht funktioniert ist, wenn man das Datum händisch überschreibt, und dann die +/- Bilder anklickt, dann wird das ursprüngliche Datum welches im Value steht verwendet statt des neu eingefügten.

        Natürlich - weil du das Datum, mit dem dein Script arbeitet, ja nur ein mal zu Anfang ausliest.

        Lese innerhalb der Funktionen den aktuellen Feldinhalt aus, und arbeite damit.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Danke, klappt jetzt