JS-Noob: Scriptänderung benötigt

Hallo Forum,

ich benutze das ziemlich geniale Tigra Calendar Script, um in Formulare ein Datum einzutragen.

Nun möchte ich bei einem der Formularfelder das einzutragende Datum auf den Bereich "heute bis heute vor 7 Tagen" begrenzen und das dem User dadurch klamachen, dass alle anderen Daten gar nicht angezeigt werden.

Oder sie werden zwar angezeigt, aber es geschieht nichts, wenn er darauf klickt.

Es gibt eine PRO-Version für 29 $, da geht das drin. Die wolte ich kaufen, aber die ist in Design und Features so unterschiedlich (und überladen) zur Free-Version, dass sie mir gar nicht mehr gefällt.

Vielleicht könnt Ihr mir ja diesbzgl. den entscheidenden Tip geben, so dass ich den anzuwählenden Zeitraum beschränken kann?

Serverseitig ist kein Problem, mir fehlt nur der Javascript-Teil.

Viele Grüße, der JS-Noob

  1. Vielleicht könnt Ihr mir ja diesbzgl. den entscheidenden Tip geben, so dass ich den anzuwählenden Zeitraum beschränken kann?

    Sieh dir den jQuery-UI-Datepicker an - der ist wesentlich flexibler und verdient "genial" als Attribut auf jeden Fall ;)

    1. Sieh dir den jQuery-UI-Datepicker an - der ist wesentlich flexibler und verdient "genial" als Attribut auf jeden Fall ;)

      Hi Suit,

      ja, der ist auch nett und kann tatsächlich auf geniale Weise das, was ich brauche.

      Aber kann ich den auch aus php als Funktion aufrufen?

      Und ist es kein Nachteil, jedesmal wegen eines Kalenderchens gleich ein (bzw. zwei) ganzes Framework(s) zusätzlich mitladen zu müssen?

      Ansonsten gefällt der mir auch sehr gut, da gebe ich Dir schon recht.

      Grüße, der JS-Noob

      1. Hallo,

        Sieh dir den jQuery-UI-Datepicker an - der ist wesentlich flexibler und verdient "genial" als Attribut auf jeden Fall ;)
        ja, der ist auch nett und kann tatsächlich auf geniale Weise das, was ich brauche.
        Aber kann ich den auch aus php als Funktion aufrufen?

        nein, natürlich nicht. Das geht mit dem von dir verlinkten Script aber auch nicht. Mach dir bitte klar, welche Scripte wann und wo ausgeführt werden:
         * PHP läuft auf dem Webserver, bevor das Dokument ausgeliefert wird
         * Javascript läuft im Browser, nachdem das Dokument ausgeliefert wurde
        Aber du kannst natürlich jederzeit das Dokument, in dem der JS-Kalender eingebettet sein soll, mit PHP generieren.

        Und ist es kein Nachteil, jedesmal wegen eines Kalenderchens gleich ein (bzw. zwei) ganzes Framework(s) zusätzlich mitladen zu müssen?

        Wieso zwei?

        So long,
         Martin

        --
        Arzt:    Gegen Ihr Übergewicht hilft wohl nur noch Gymnastik.
        Patient: Sie meinen, Kniebeugen und so?
        Arzt:    Nein, Kopfschütteln. Immer dann, wenn Ihnen jemand was zu essen anbietet.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Und ist es kein Nachteil, jedesmal wegen eines Kalenderchens gleich ein (bzw. zwei) ganzes Framework(s) zusätzlich mitladen zu müssen?

          Wieso zwei?

          Vermutlich ist jQuery und jQuery UI gemeint - wobei jQuery UI eigentlich nur ein Plugin für das Framework ist :)

      2. Aber kann ich den auch aus php als Funktion aufrufen?

        Wieso solltest du das wollen, das machst du mit dem anderen doch auch nicht ;)

        PHP weiß davon nichts, du kannst den datepicker aber z.B. initial anzeigen lassen, indem du .datepicker('show') gleich beim Laden aufrufst. Ob du den dafür nötigen Code mit PHP erzeugst, ist deine Sache.

        Und ist es kein Nachteil, jedesmal wegen eines Kalenderchens gleich ein (bzw. zwei) ganzes Framework(s) zusätzlich mitladen zu müssen?

        12 kB für ein jQuery UI custom welches nur Core und Datepicker beinhaltet und 24 kB für das Framework. Das ist etwa 3x so viel wie du jezt hast.

        Ob das für dich vertretbar ist, musst du wissen. Wenn du Bilder oder vergleichbares auf deiner Seite hast, sind 24 kB extra aber nicht mehr wirklich schlimm.

        1. Aber kann ich den auch aus php als Funktion aufrufen?

          Wieso solltest du das wollen, das machst du mit dem anderen doch auch nicht ;)

          Doch, das mache ich sehr wohl!

          Ich reiche den Code später nach,weil ich dazu grad nicht am richtigen Rechner sitze.

          Ich rufe eine Funktion "kalender" auf, gebe als Parameter den namen des Input-Feldes des Formulares, sowie eines Standart-Values für dieses Input-Field mit und die Funktion includet den Javascript-Code.

          Da ich auf einer Seite durchaus mehrere Male den Kalender für verschiedene Input-Felder benötige, ist das eine angenehme Variante, über das Aufrufen dieser Funktion diese mehreren Input-Felder mitsamt Value und den Kalender-JS-Code zu erzeugen.

          Deshalb wäre es mir immer noch am liebsten, den vorhandenen Code so umzuschreiben, das mein Anliegen erreichbar wäre.

          Aber mir gefällt auch der Datepicker sehr gut. Wenn es also ebenso möglich wäre, den über solch eine Funktion aufzurufen, stzeige ich gerne auf den um.

          Grüße, der JS-Noob

          1. Aber kann ich den auch aus php als Funktion aufrufen?

            Wieso solltest du das wollen, das machst du mit dem anderen doch auch nicht ;)

            Doch, das mache ich sehr wohl!

            Ich reiche den Code später nach,weil ich dazu grad nicht am richtigen Rechner sitze.

            Ich rufe eine Funktion "kalender" auf, gebe als Parameter den namen des Input-Feldes des Formulares, sowie eines Standart-Values für dieses Input-Field mit und die Funktion includet den Javascript-Code.

            Dann erzeugst du mit PHP lediglich entsprechenden JavaScript-Code und führst mit PHP keineswegs JavaScript-Funktionen aus.

            Das ist etwas völlig anderes (und das was Martin auch schon schrieb) und völlig unabhängig des JavaScripts möglich.

            Da ich auf einer Seite durchaus mehrere Male den Kalender für verschiedene Input-Felder benötige, ist das eine angenehme Variante, über das Aufrufen dieser Funktion diese mehreren Input-Felder mitsamt Value und den Kalender-JS-Code zu erzeugen.

            Wie gesagt: das hat nichts mit dem JavaScript zu tun - ob du nun das nötige JavaScript für Datepicker X oder Datepicker Y generierst oder das nötige JavaScript für Slideshow FOO ist Blunzengröstl.

            Deshalb wäre es mir immer noch am liebsten, den vorhandenen Code so umzuschreiben, das mein Anliegen erreichbar wäre.

            Ohne JavaScript-Kenntnisse - du scherzt ;)

            Aber mir gefällt auch der Datepicker sehr gut. Wenn es also ebenso möglich wäre, den über solch eine Funktion aufzurufen, stzeige ich gerne auf den um.

            Auf die Gefahr, mich zu wiederholen: natürlich ist das möglich. Aber du rufst mit PHP keine JavaScript-Funktionen auf, das tust du jetzt nämlich auch nicht.

            1. Hallo Suit,

              Dann erzeugst du mit PHP lediglich entsprechenden JavaScript-Code und führst mit PHP keineswegs JavaScript-Funktionen aus.

              Ja, da hast Du wohl recht. Wie sollte das auch gehen? Das Javascript läuft ja clientseitig ab.
              Ich generiere also im laufenden php-script den entsprechenden Jacascript-Code.

              Wie gesagt: das hat nichts mit dem JavaScript zu tun - ob du nun das nötige JavaScript für Datepicker X oder Datepicker Y generierst oder das nötige JavaScript für Slideshow FOO ist Blunzengröstl.

              Mein Problem ist wohl, daß ich nicht weiß, wie ich das bei dem UI-Datepicker machen muß.

              Bei meinem rufe ich folgende Funktion auf:

                
              function calender($formname,$input_field,$val='') {  
                
              echo ("  
              <script language=\"JavaScript\" src=\"./calender/kal.js\"></script>  
              	<input type=\"text\" size=\"13\" name=\"".$input_field."\" value=\"".$val."\" />  
              	<script language=\"JavaScript\">  
              	var o_cal = new tcal ({  
              		// form name  
              		'formname': '".$formname."',  
              		// input name  
              		'controlname': '".$input_field."'  
              	});  
              	o_cal.a_tpl.yearscroll = true;  
              	o_cal.a_tpl.weekstart = 1;  
              	</script>  
              ");  
              return;  
                
              }  
              
              

              Aber mir gefällt auch der Datepicker sehr gut. Wenn es also ebenso möglich wäre, den über solch eine Funktion aufzurufen, stzeige ich gerne auf den um.

              Auf die Gefahr, mich zu wiederholen: natürlich ist das möglich. Aber du rufst mit PHP keine JavaScript-Funktionen auf, das tust du jetzt nämlich auch nicht.

              Aber der UI-Datepicker wird doch im Header-Teil der Seite aufgerufen??
              Und hat dann dort bereits die Parameter festgelegt.

              Wie würde ich denn den UI-Datepicker im laufenden php-script so aufrufen, dass er einmal mit den Parametern a,b und c und ein anderes mal mit den Parametern c,d und e aufgerufen wird?

              a,bc,d,e,f sollen für die möglichen Konfigurationen dieses Datepickers stehen. Also z.b. einmal mit anwählbarem Zeitbereich, einmal mit freier Wahlmöglichkeit des Datums usw.

              Wie schon gesagt würde ich am liebsten einfach meine Funktion umschreiben und anstelle meines bisherigen Datepickers den UI-Datepicker hinterlegen. Geht das?

              Vg, der JS-Noob

              1. Hi,

                Dann erzeugst du mit PHP lediglich entsprechenden JavaScript-Code und führst mit PHP keineswegs JavaScript-Funktionen aus.

                Ja, da hast Du wohl recht. Wie sollte das auch gehen? Das Javascript läuft ja clientseitig ab.
                Ich generiere also im laufenden php-script den entsprechenden Jacascript-Code.

                Gut.

                Wenn du das jetzt erst mal erkannt hast,

                Bei meinem rufe ich folgende Funktion auf:

                [code lang=php]
                function calender($formname,$input_field,$val='') {

                echo ("

                • dann solltest du auch wissen, dass serverseitiger Code erst mal uninteressant ist, wenn es clientseitig nicht wie gewünscht funktioniert.

                Also betrachte den Code, den der Client erhält.
                Und wenn du nicht weißt, was in diesem fehlerhaft ist - dann zeige zunächst auch diesen.

                Wie würde ich denn den UI-Datepicker im laufenden php-script so aufrufen

                Noch mal (*seufz*) - gar nicht.

                Du rufst ihn aus dem HTML-Dokument heraus auf, dass der Client erhält.

                Ob du serverseitig das Dokument mit PHP erzeugst, oder ob deine Oma im Servergehäuse sitzt und das Ding strickt, ist dem Client furzegal.
                Und uns auch, wenn wir dir bei einem clientseitigen Problem helfen sollen.

                Wie schon gesagt würde ich am liebsten einfach meine Funktion umschreiben und anstelle meines bisherigen Datepickers den UI-Datepicker hinterlegen. Geht das?

                Na klar.
                Mach dir klar, welcher clientseitige Code nötig ist, um das Ding wie gewünscht aufzurufen.
                Erzeuge anschliessend diesen Code - ggf. auch dynamisch, ggf. auch serverseitig per PHP.

                MfG ChrisB

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                1. Mach dir klar, welcher clientseitige Code nötig ist, um das Ding wie gewünscht aufzurufen.

                  Wenn du Hilfe dabei brauchst, wäre in erster Linie interessant, was du machen möchest - denn ohne dieses Wissen kann hier niemand detaillierte Hilfe anbieten.

            2. Om nah hoo pez nyeetz, suit!

              Blunzengröstl

              Matthias

              --
              http://www.billiger-im-urlaub.de/kreis_sw.gif
              1. Blunzengröstl

                Das erste Bild mit den lilafarbenen Fetzen sieht etwas ungesund aus :)

                Ich frag' mich nur, das du mit damit sagen willst?

                1. Om nah hoo pez nyeetz, suit!

                  Blunzengröstl

                  ...

                  Ich frag' mich nur, das du mit damit sagen willst?

                  Du hast doch damit angefangen ;-) Matthias

                  --
                  http://www.billiger-im-urlaub.de/kreis_sw.gif
                  1. Ich frag' mich nur, das du mit damit sagen willst?

                    Du hast doch damit angefangen ;-)

                    Das ist mir egal.