Jule: Kalender-Funktion

Ich wende mich mal wieder verzweifelt an Euch...

Eigentlich ist die Aufgabe ganz einfach:
Der User soll ein Datum eintragen.
Aufgrund der NORM möchte ich, dass er das Datum über einen kleinen Kalender anklickt, welcher durch ein kleines Popup-Fenster geöffnet wird. Das Entsprechende Datum soll dann in einer Datenbank gespeichert werden.

Ich arbeite jetzt schon über 8 Stunden an diese "einfachen" sache und komme einfach nicht weiter.

Ich habe es zwar geschafft, dass das kleine Kalender-Fenster auf geht, der User sein Datum anklickt und dieses dann sogar im "Eltern-Fenster" angezeigt wird. Das ich das aber alles mit Javascript gemacht habe, weiß ich jetzt nicht, wie ich das Datum speichern kann.
ich gebe Euch einfach mal meine beiden Test-Scripts:

Eltern-Datei: (von diesem Script aus, wird der kalender aufgerufen)
-----------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html><head><title>Untitled</title></head>
<body>

<form id="jswinOpen" method="POST">

<fieldset>
<p><input type="button" id="jswinTrans">Kalender</button></p>
<p><input id="myText" type="text"></p>
</fieldset>
</form>

<script type="text/javascript">
   var theWindow = new Object;
   theWindow.prop = "width=600,height=400,scrollbars=no";
   theWindow.file = "test2.php";
   var jswinOpen = document.getElementById('jswinOpen');
   jswinOpen.onclick = function ()
   {
   theWindow.ref = window.open(theWindow.file, "", theWindow.prop);
   }
</script>
</body>
</html>
-----------------------------------------------------------------

Kalender-Script: (Hier klickt der User auf sein Wunschdatum)
-----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Untitled</title>

<script type="text/javascript">
   function addEvent(obj, evType, fn, useCapture)
     {
     if (obj.addEventListener)
       {
       obj.addEventListener(evType, fn, useCapture);
       return true;
       }
       else
       if (obj.attachEvent)
       {
       var retVal = obj.attachEvent("on"+evType, fn);
       return retVal;
       }
       else
       {
       return false;
       }
     }
addEvent(window, 'load', returnToSender, false);
function returnToSender()
   {
   for (i=1 ; i<=32; i++)
      {
      //Die Referenz des Objektes mit dem Zusammengesetzten Namen speichern
      var obj = document.getElementById('button' + i);
      //Diese Referenz für den Befehl nutzen
      addEvent(obj, 'click', returnIt, false);
      }
   }
function returnIt(evt)
   {
   evt = (evt) ? evt : ((window.event) ? window.event : "");
   var elem = (evt.target) ? evt.target : evt.srcElement;
   var gift = opener.document.getElementById('myText');
   gift.value = elem.value;
   self.close();
   }
</script>
</head>
<body>
<form name="kalender">
<?
$tag="1";
$x="1";
while ($x<"32")
   {
   echo"<br><input type="button" id="button$x" value="$tag.05.2009">";
   $tag++;
   $x++;
   }
?>
</form>
</body>
-----------------------------------------------------------------

Das wesentliche Problem liegt eigentlich darin, dass mit dem Aufruf des Kalenders die opener2.php erneut geladen wird und erst anschließend das selektierte Datum dargestellt wird.

Gibt es überhaupt eine Möglichkeit, diese Variable irgendwie in einer Datenbank zu schreiben - ich komme da ja nicht mit PHP ran?

Wenn nicht, wie machen die anderen das denn?
So einen Kalender sieht man doch fast auf jeder Seite?

Vielen Dank für jeden der Hilft

cu

  1. Kann man eigentlich NUR javascript mit nem Button ausführen, wenn dieser per id etwas ausführen soll?

    Veilleicht kann man ja auch das Datum speichern, bevor sich das Fenster schließt und letztlich im Elternfesnter das Datum anzeigt.

    Also nochmal die Frage anders gestellt:

    Kann ich durch klciken auf einen Button ein update auf eine Mysql-Datenbank durchführen OHNE, dass ich die aktuelle oder eine andere Seite neu laden muss?

    PS Ist denn hier keiner der mir helfen kann *schnief*

    cu

    1. Hi,

      Kann ich durch klciken auf einen Button ein update auf eine Mysql-Datenbank durchführen OHNE, dass ich die aktuelle oder eine andere Seite neu laden muss?

      Du musst in jedem Falle eins - eine Ressource vom Server anfordern, denn JavaScript hat vom Client aus keine Möglichkeit, "direkt" mit der Datenbank auf dem Server zu kommunizieren.

      Wenn du dafür keine "neue Seite" laden willst, dann ist AJAX dein Stichwort.

      PS Ist denn hier keiner der mir helfen kann *schnief*

      Jammer nich', informier dich.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      1. Jammer nich', informier dich.

        Also Deine Kommentare kannst Du Dir echt sonst wo hinschieben!!

        Was meinst Du warum ich hier mein Problem erkläre - mhh...

        vieleicht um mich zu informieren??? - NUR SO ALS IDEE!!

        Beschrenke Du Dich lieber auf Deine Antwort und nicht auf Deinen FRUST!

        cu never i hope

        1. Hi,

          Also Deine Kommentare kannst Du Dir echt sonst wo hinschieben!!

          In deinem Kopf wäre wohl noch Platz ...?

          Beschrenke Du Dich lieber auf Deine Antwort und nicht auf Deinen FRUST!

          Unterlasse du es doch einfach, deinen Frust in solcher Form

          PS Ist denn hier keiner der mir helfen kann *schnief*

          in deine Frage reinzubringen. Frag das, was du wissen willst, aber lasse solchen Kram einfach weg. Weder Drängeln noch Jammern sind hilfreich.

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.
          1. Unterlasse du es doch einfach, deinen Frust in solcher Form
            »» PS Ist denn hier keiner der mir helfen kann *schnief*
            in deine Frage reinzubringen. Frag das, was du wissen willst, aber lasse solchen Kram einfach weg. Weder Drängeln noch Jammern sind hilfreich.

            MfG ChrisB

            Glaub nicht, dass das Frust ist, sondern echtes oder vermutlich sogar gefakedtes Weiblichkeitsgehabe, um den männlichen Helper-Instinkt zu locken und dessen Ergebnis einzuheimsen ;-)

            Hoffen wir mal, dass das ins Leere läuft.

            Schrecklich, ob echt oder gefaked ist dabei schon zweitrangig!

          2. ach Jule, ChrisB ist einfach ein frustrierter Web-Designer ohne Wissen. Er ist einfach gestrickt und macht deswegen den Leuten das Leben zur Hölle. Ignoriere ihn einfach, er kann nicht anders.

            1. ... und macht deswegen den Leuten das Leben zur Hölle.

              Ohje, das Leben wird zur Hölle, wenn einer dir sagt, dass du auch durch Eigeninitiative etwas erreichen kannst?

              Das macht mich traurig *schnief*

              Struppi.

              1. Hi Struppi!

                Das macht mich traurig *schnief*

                Armer Struppi! Kann ich dir irgendwie helfen?

                MfG H☼psel

                --
                "It's amazing I won. I was running against peace, prosperity, and incumbency."
                George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  2. Hi

    Normalerweise gibt es eine Art Hauptseite, auf der ein Eingabefeld für das Datum ist, und beim Absenden serverseitg gespeichert wird. Das Eingabefeld kann das Datum z.B. in der From JJJJ-MM-DD (denkbar sind aber fast alle) annehmen. Das ganze funktioniert komplett ohne JavaScript. Ist JS aktiviert, blendest du dynamisch einen Button neben dem Eingabefeld ein, der onClick ein PopUp öffnet. Die geöffnete Adresse kann im Querystring den Inhalt des Eingabefeldes übertragen, Serverseitig wird die Auswahl zurückgegeben, das übertragene Datum evtl hervorgehoben. Wird nun hier ein Datum ausgewählt (egal wie das jetzt implementiert wird), wird der ausgewählte Wert im opener gespeichert und das Fenster geschlossen (das hast du ja schon hinbekommen).
    Jetzt ist im Eingabefeld das ausgewählte Datum (noch nicht in der Datenbank), und wird beim absenden des Formulars serversetig gespeichert.

    Du hast also einen teil ohne Auswhl (nur <input>), der ohne JS läuft und einen Teil, der das Eingeben durch auswählen vereinfacht, wenn JS aktiviert ist.

    mfg
    Felix