Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Anmeldemaske tastaturlos

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Anmeldemaske tastaturlos

    Hallo,

    mein Problem ist wie folgt, der PC an dem meine PHP Andwenung laufen soll verfügt einzig und allein über den TouchScreen, man soll nur darüber Navigieren können.
    Nun habe ich schon direkt zu Beginn ein Problem.
    Zur Anmeldung müssen 2 Felder ausgefüllt werden zum einen die Personalnummer und das Kennwort.
    Um da was reinschreiben zu können bräuchte ich also einen Tastenblock. Diesen möchte ich nun mit den Buttons 0-9 eines Formulars darstellen, meine frage ist nun wie ich es machen kann das nach dem drücken eines Buttons die Zahl in so ein eingabefeld hineingeschoben wird.
    Ist das überhaupt machbar?

  • #2
    Geht schon.

    Als erstes brauchst du eine globale Variable, die sich den aktuellen Focus merkt

    Code:
    var aktfield = false;
    Deine Eingabefelder setzen die Variable auf sich selbst.
    Code:
    <input ... onfocus="aktfield=this;" onblur="aktfield=false;">
    Dann schreibst du eine funktion zu Eintragen der Zeichen
    Code:
    function setKey(key) {
      if (!aktfield) return;
      aktfield.value+=key;
    }
    Dann nur noch die Buttons
    Code:
    <input type="button" value="1" onclick="setKey(this.value);">
    thats it

    Kommentar


    • #3
      Mit Flash ginge sowas auch zu machen, weis ja nicht ob es Akzeptabel wäre.

      Kommentar


      • #4
        Bitte im Post bleiben, dann haben auch andere etwas davon.


        Ähhm, den Unterschied zwischen Javascript und PHP kennst du?

        Kommentar


        • #5
          hm...jo eigtl schon habe aber keine ahnung von java

          also mein code sieht nun mal so aus
          <html>
          <head>
          <title>Test</title>
          </head>
          <body>
          var aktfield = false;

          <form action="index.php" method="post">
          <input benutzer onfocus="aktfield=this;" onblur="aktfield=false;">
          <input kennwort onfocus="aktfield=this;" onblur="aktfield=false;">


          function setKey(key) {
          if (!aktfield) return;
          aktfield.value+=key;
          }

          <input type="button" value="1" onclick="setKey(this.value);">
          <input type="button" value="2" onclick="setKey(this.value);">
          </form>
          </body>
          </html>

          wie bin ich denn des java hier korrekt ein?

          Kommentar


          • #6
            Bitte im Post bleiben, dann haben auch andere etwas davon.
            ????????

            Kommentar


            • #7
              Zitat von madbrain
              hm...jo eigtl schon habe aber keine ahnung von java
              von java war ja auch nie die Rede.

              Schon mal überhaupt ein Javascript benutzt?

              Code:
              <script type="text/javascript">
              var aktfield = false;
              function setKey(key) {
                if (!aktfield) return;
                aktfield.value+=key;
                aktfield.focus();
              }
              </script>
              Zitat von CIX88
              ????????
              PN

              Kommentar


              • #8
                Benuzt schon aber (aber nie selbst was geschrieb), hab schon ewisch nix mehr gemacht un nun verzweifel ich an dieser anmeldung.

                Läuft des bei dir?

                Sorry will ja nicht nerfen aber bei mir tut sich nix wenn ich auf die Buttons klicke :-/

                <html>
                <head>
                <title>Test</title>
                <script type="text/javascript">
                var aktfield = false;
                function setKey(key) {
                if (!aktfield) return;
                aktfield.value+=key;
                aktfield.focus();
                }
                </script>
                </head>
                <body>
                <form action="index.php" method="post">
                <input benutzer onfocus="aktfield=this;" onblur="aktfield=false;">
                <input kennwort onfocus="aktfield=this;" onblur="aktfield=false;">

                <input type="button" value="1" onclick="setKey(this.value);">
                <input type="button" value="2" onclick="setKey(this.value);">
                </form>
                </body>
                </html>

                Kommentar


                • #9
                  es heisst <input name="benutzer" ...

                  ansonsten war nur noch ein Timeout Problem

                  Code:
                  <html>
                  <head>
                  <title>Test</title>
                  <script type="text/javascript">
                  var aktfield = false;
                  var tid = false;
                  function setKey(key) {
                    if (!aktfield) return;
                    clearTimeout(tid);
                    aktfield.value+=key;
                    aktfield.focus();
                  }
                  </script>
                  </head>
                  <body>
                  <form action="forums.html" method="post">
                  <input name="benutzer" onfocus="aktfield=this;" onblur="tid=setTimeout('aktfield=false',100);">
                  <input name="kennwort" onfocus="aktfield=this;" onblur="tid=setTimeout('aktfield=false',100);">
                  
                  <input type="button" value="1" onclick="setKey(this.value);">
                  <input type="button" value="2" onclick="setKey(this.value);">
                  </form>
                  </body>
                  </html>

                  Kommentar


                  • #10
                    jea das ist ja richtig genial vielen dank
                    leider klappt das mit dem felderwechsel noch net so richtig muss man 2 mal reinklicken bis er es raft das des feld gewechselt hat

                    Kommentar


                    • #11
                      Code:
                      <input name="benutzer" onfocus="if(tid)clearTimeout(tid);aktfield=this;" onblur="tid=setTimeout('aktfield=false',100);">
                      <input name="kennwort" onfocus="if(tid)clearTimeout(tid);aktfield=this;" onblur="tid=setTimeout('aktfield=false',100);">

                      Kommentar


                      • #12
                        @DiBo:

                        Hab deine Lösung jetzt nur mal "grob" überflogen. Könntest du mir mal den Sinn der gesetzten Timer erläutern ?

                        Dank im Voraus ...
                        [URL="https://xlb-weblab.de/toolstool/"][B]ToolsTool[/B] - Online (SEO-)Tools im Browser gleichzeitig starten ...[/URL]

                        Kommentar


                        • #13
                          Soll das ganze im professionellen/kommerziellen (Firmen-)Bereich eingestzt werden? Ist dir bekannt, dass es für sowas Richtlinien gibt (z.B. DIN EN ISO 9241+13407)? Solltest du dir mal anschauen, damt dir ggf. kein pingliger Betriebsrat auf der Nase rumtanzt.

                          Hab da mal "schnell" was gebastelt : Hier

                          Formatierung ist noch net so dolle, findet auch keinerlei Überprüfung der Eingaben statt.
                          [URL="https://xlb-weblab.de/toolstool/"][B]ToolsTool[/B] - Online (SEO-)Tools im Browser gleichzeitig starten ...[/URL]

                          Kommentar


                          • #14
                            Also sicher wird das teil einen Einsatz finden, an den Produktionsstätten steht ein PC, an diesem Ort kommt ein Teil an das von einem Roboter fertig gestellt wurde, ein Mitarbeiter schaut sich das gute stück an un muss evtl. nachbessern sin des programms ist eine statistik zu erstellen, d.h nacharbeiten werden erfassst (gebt zb 8 schweißstellen es wird genau erfasst an welcher schweißstelle nachgebessert wurde) also das programm soll einfach nur anzeigen wie viel gefertigt wurde un wie oft nachgebessert wurde alos momentan gebts da eine visualbasic basierende variante aber wenn ich das ganze über php realisiere liegt die db auch zentral auf einem server. Momentan hat jeder pc eine eigene datenbank. wenn ich das ganze mit php aufbaue kann ich auch ein programm für den Firmenleiter schreiben wo er sich genau jede einzelne station von seinem arbeitsplatz aus angucken kann ohne an die stationen zu rennen. so hab ichs mir mal vorgestellt

                            Kommentar


                            • #15
                              Zitat von XLB
                              @DiBo:

                              Hab deine Lösung jetzt nur mal "grob" überflogen. Könntest du mir mal den Sinn der gesetzten Timer erläutern ?

                              Dank im Voraus ...
                              Focus oder nicht Focus, das ist hier die Frage.

                              In dem Moment wo ein Button gedrückt wird erhält dieser den Focus, somit würde die Variable aktfield immer auf false stehen.

                              Kommentar

                              Lädt...
                              X