Beiträge von Sempervivum

    Hallo DataPearl

    Zitat

    da alle INPUT-Felder zusammen bereits in einem großen FORM liegen. Aus Übersichtsgründen (und auch wegen zwei Hintergrundprozessen) möchte ich aber nicht alle INPUT-Felder auf einmal anzeigen lassen, sondern sie in inhaltlich logische Abschnitte unterteilen.

    In dem Fall würde es sich anbieten, fieldset-Tags für die Unterteilung zu benutzen. Ich habe dafür mal eine Demo gemacht:

    So geht es mit wenigen Zeilen ganz ohne Klassen, nur die IDs für die Inputs brauchst Du wahrscheinlich, um die Werte auch durch das Skript ändern zu können.

    Und, Du hast zwar nicht danach gefragt, aber ich habe ein Feature benutzt was häufig als hilfreich für den Benutzer angesehen wird: Abhängig davon ob ein Element valide oder nicht valide ist, kann man die Anzeige variabel gestalten, hier mit rotem Hintergrund bzw. Rahmen.

    PS: Noch einfacher geht es, wenn Du die Formularvalidierung von HTML5 benutzt:

    Die Inputs in ein Formular legen und ihnen ein "required" geben, dann kannst Du mit der Funktion checkValidity prüfen, ob alles valide ist bzw. in deinem Fall alle Inputs ausgefüllt:

    Guten Morgen,

    ich hatte gestern schon die Idee, den MutationObserver zu verwenden, aber das scheitert daran, dass beim Setzen des Value sich das DOM nicht ändert und der Observer nicht feuert. Aber hier:

    MutationObserver doesn't react to changes to text input fields
    I'm working on adapting an IE-specific website to other browsers. For example, onpropertychange has been used extensively, and I'm using MutationObserver to…
    stackoverflow.com

    wird eine Lösung vorgeschlagen: Das value-Attribut ändern, dann feuert der MutationObserver. Hat zwar den Nachteil, dass Du zweigleisig fahren musst, wenn Du auch manuelle Eingaben erfassen willst, wäre aber eine recht elegante Lösung.

    Und auch zu deinem letzten Code für die Überprüfung mehrerer Inputs fällt mir ein elegantere Lösung ein:

    Den betr. Inputs eine Klasse geben und sie in einer Schleife abarbeiten:

    (ungetestet)

    Hallo DataPearl und willkommen im Forum!

    Ich dachte zunächst, das die Events "change" oder "input" dein Problem lösen aber das war ein Irrtum, wie auch hier angegeben wird:

    Pure JavaScript listen to input value change
    Is there a way I can create a constant function that listens to an input, so when that the input value changes, something is triggered immediately? I am…
    stackoverflow.com

    Die Lösungen mit Custom-Events, die dort angegeben werden sind unnötig kompliziert. Besser eine Funktion definieren, die deine Aktionen ausführt und explizit aufrufen:

    Oder etwas kompakter:


    Alternativ könnte man das auch noch etwas moderner aufziehen und das Ganze mit Klassen steuern und das Eventbubbling ausnutzen:

    Dann kannst Du auch die Gestaltung des weiter-Buttons mit CSS steuern:

    Code
            button#weiter {
                background-color: red;
            }
    
            button#weiter.aktiv {
                background-color: lightgrey;
            }

    Hallo Tamaleus

    wenn ich das richtig verstehe, müsste das variabel mit Parametern so aussehen:

    Ungetestet, versuche ob es funktioniert und melde dich wieder, wenn nicht.

    Das ist jetzt ein wenig ineffizient weil Du bei jedem Aufruf die komplette Quellseite laden musst. Besser wäre es eigentlich, gleich auf der Serverseite das Filtern zu erledigen. Aber Du schreibst ja, dass Du schon glücklich wärst, wenn es auf diese Weise funktioniert.

    Beste Grüße, Ulrich

    Guten Morgen Kaspar und willkommen im Forum!

    Folgende Hinweise zu deinem Problem:

    • Bist Du schon mit der Console vertraut? Rechtklick auf der Seite und dann "(Element) untersuchen". Dort bekommst Du Fehlermeldungen, die dir zeigen, wo genau Du suchen musst.
    • Datatables ist bewährt und sehr gut, aber auch ein wenig in die Jahre gekommen. Es gibt eine Alternative, die einfacher anzuwenden ist und kein jQuery braucht: https://tabulator.info/ Da Du ganz am Anfang ist, empfehle ich, gleich damit einzusteigen. Auch die spaltenspezifische Filterung ist ganz einfach mit einem headerFilter:"input" zu machen.
    • Wenn Du anfängst, lässt Du am besten erst Mal alle Erweiterungen weg und bringst es so zum Laufen. Bei Tabulator findest Du ein "Getting Started" - "Quick Start".

    Wenn Du dann noch nicht zum Ziel kommst, poste dein HTML, JS und CSS hier. Oder, noch besser, bring es online, damit man es live untersuchen kann.

    Beste Grüße, Ulrich

    Hallo Tim und willkommen im Forum!

    Erst mal zu deiner Detailfrage:

    Zitat

    Ich habe auch schon überlegt ob if(strlen nciht mit dem decimal Feld kompatibel ist?

    Vermutlich bezieht sich das auf die Validierung der Eingaben. Auch wenn die betr. Werte in der DB vom Typ int sind, sind die Werte, die aus den Eingabefeldern kommen, Strings. Daher ist es nicht verkehrt, ihre Länge zu prüfen.

    Der Kern der Sache scheint mir jedoch dieser Code zu sein:

    Code
    if ((strlen($Schraube)) > 0 and (! ctype_alpha($Schraube))) {
        echo "Data Error";
        exit;
    }

    Hier steigst Du aus wenn die Länge >0 ist, d. h. eine Eingabe vorhanden. Das ist jedoch der richtige Fall, d. h. Du musst die Abfrage genau umgekehrt machen.

    Darüber hinaus: Wie ist denn dieser Code entstanden?

    Viel Erfolg und beste Grüße, Ulrich

    Zitat

    nur bekomm ich die boxen nicht gleich ... die mittlere will einfach nicht höher werden.

    Hast Du das HTML und CSS so übernommen wie ich es gepostet habe? Bei mir, nachdem ich deinen Code übernommen hatte, war das genau so. Grund waren die überflüssigen div-Container, hier:

    Code
                   <section class="contact-section">
                        <div class="contact-form-container">

    Dabei nahm die umgebende section die selbe Höhe ein wie die benachbarten aber das div darin nicht.

    Und das CSS:

    Da war einiges doppelt und evtl. müsste noch mehr bereinigt werden aber mir fehlte die Zeit.

    Die FAQ-Elemente sind jetzt recht klein. Wenn da Inhalt rein kommt, könnte es zu Schwierigkeiten kommen.

    Und Du hattest geschrieben, dass sich alles verschiebt, wenn man ein Akkordeon auf klappt. Das ist bei meiner Lösung auch so. Will man das vermeiden, müsste man die z. B. die Höhe begrenzen und den Overflow sichtbar machen. Aber dann wird es wahrscheinlich Probleme geben, wenn man ein Element ganz unten auf klappt.

    Zitat

    ich danke dir für deine geduld.

    Da nicht für, Geduld gehört dazu beim Programmieren.

    Das Layout, dass dein HTML und CSS ergibt, sah ein wenig wild aus. Ich habe mich mal nach dem Bild in Posting #9 gerichtet und die Elemente so angeordnet. Zu viel um alles zu erklären, ich habe u. a. überflüssige Container entfernt.

    Bei den Pfeilen des summary-details hast Du mit abs. Positionierung gearbeitet und dabei haben sich gleich die Nachteile offenbart: Element überlappen sich. Du kannst den Text und den Pfeil sehr gut mit Flexlayout neben einander anordnen.