Beiträge von Sempervivum

    Zitat

    Bei Klick auf "Eintragen" oder "Löschen" soll sich je ein Modalfenster öffnen.

    Ein Modal kann man heute relativ einfach mit dem dialog-Element erzeugen:

    HTML/Tutorials/dialog – SELFHTML-Wiki


    Zitat

    Wie realisiere ich es, dass der User darin z.b. einen Button oder ein anderes Element z.b. eine card anklickt, dieses daraufhin z.b. umrahmt wird (Also ein Check für den User, das er das Element angeklickt hat)

    Dafür würde sich ein checkbox-Element mit einem zugeordneten Label anbieten:

    HTML/Tutorials/Formulare/Radio-Buttons und Checkboxen – SELFHTML-Wiki

    In das label-Element kannst Du dann weitere Elemente wie eine Card einfügen. Und mit dem Attribut "checked" die Anzeige dieser Elemente, bzw. des label selber, steuern und ihnen z. B. einen Rahmen geben.


    Zitat

    Ziel soll am Ende sein: Auf einen Button "Übernehmen" zu klicken und alle durch den Benutzer angeklickten Elemente also die gespeicherten Variablen in eine Mysql Datenbank zu schreiben. Und das Modalfenster zu schließen.

    Wenn das dein Ziel ist brauchst Du wahrscheinlich gar keine zusätzlichen Variablen: Überträgst Du die Formulardaten zum Server stehen das name- und das value-Attribut der Checkbox dort als GET-/POST-Parameter zur Verfügung, name als Schlüssel und value als Wert.

    Zitat

    habe ich noch nicht rausgefunden, wie ich den Rotationsmittelpunkt setzen kann.

    Den kannst Du mit "transform-origin" setzen. Allerdings ist der Defaultwert dafür "center", so dass deine Aussage, dass das Icon um den oberen Rand rotiert, nicht plausibel ist. Poste am besten den Code, wie von nextuser vorgeschlagen oder die URL der Seite.

    Hallo fnbalu , ich hoffe, das Preisschießen ist noch nicht vorbei, deine Frage liegt ja schon fast einen Monat zurück.


    Das Stichwort "sticky" ist genau was Du brauchst. Bringe den Teil, der nicht gescrollt werden soll, z. B. in einem header-Tag unter und gib diesem dieses CSS:


    Code
    header {
        position: sticky;
        top: 0;
        left: 0;
    }

    Wo kommen denn die Bilder her? Eine Webcam, eine Fotokamera, Handy?


    Du könntest noch versuchen, die Bilder mit Imagick zu validieren:

    Code
    $image = new Imagick('001.jpg');
    var_dump($image->valid);

    (ungetestet weil ich lokal keine Installation von Imagick habe)

    Zitat von langi

    Es ist eines der originalen Bilder

    Mit diesem:

    Zitat von Sempervivum

    Ich bin aber unsicher ob das das originale Bild ist, nicht auszuschließen, dass es vor/beim Hochladen oder beim Einfügen in das Posting bearbeitet wurde.

    Meinte ich nicht eine Bearbeitung durch dich sondern eine automatische durch die Forensoftware.


    Hast Du deinen Code denn jetzt mit mehreren Bildern getestet oder ist es nur eines, das nicht funktioniert?

    Stellt sich die Frage ob es

    a) an deiner Installation der gdlib liegt oder

    b) an dem fraglichen Bild.


    Zu b) ich habe das getestet mit dem Bild, das Du gepostet hast und damit hat das imagecreatefromjpeg einwandfrei funktioniert. Ich bin aber unsicher ob das das originale Bild ist, nicht auszuschließen, dass es vor/beim Hochladen oder beim Einfügen in das Posting bearbeitet wurde. Ich nehme mal an, Du hast es mit mehreren Bildern versucht? Hast Du das @ auch vor dem imagecreatefromjpeg entfernt?


    Zu a) Bei mir unterscheidet sich die Version von libJPEG, bei mir 9, bei dir 6b aber keine Ahnung ob das von Bedeutung ist. Wie ist denn deine Installation von PHP und gdlib entstanden?

    Mit der temporären Datei meinte ich nur, dass Du die geänderte Version mit einem anderen Dateinamen speicherst, z. B. index-test.html.


    Was ich selber beobachte ist, dass die Seite zu der Position scrollt wo der Anker #nav-menue liegt und der Button nach oben verschwindet. Das ist genau der Grund, warum ich kein Freund von diesem Verfahren mit Ankern und :target bin: Man hat mit ungewollten Nebeneffekten zu kämpfen. Besser den Checkbox-Trick verwenden oder Javascript.

    Checkbox-Trick ist z. B. hier beschrieben:

    https://stackoverflow.com/ques…hile-clicking-on-checkbox

    Wie ich schon schrieb, empfehle ich nicht, an dem Bootstrap-Modal herum zu schrauben sondern es selbst zu machen. Man findet leicht Scripts für das Dragging und ein Modal ist auch kein Hexenwerk. Z. B hier:

    https://blog.pliszko.com/2021-…thout-external-libraries/

    Das funktioniert auch für Touch-Geräte.

    Das könnte dann so aussehen:

    Zitat

    dass die Eigenschaft auf Buttons im Hintergrund verloren gegangen ist.

    Wahrscheinlich meinst Du damit, dass die Buttons der Modale im Hintergrund nicht auf Klicks reagieren. Das habe ich auch fest gestellt und es liegt daran, dass das oberste div div.modal.fade, wenn auch unsichtbar, das gesamte Browserfenster ausfüllt und die Klicks auf die Buttons der anderen Modale abfängt.

    Ich bin jetzt nichts ins Detail eingestiegen und habe auch keine getestete Lösung, aber folgende Hinweise:

    • Du schriebst: "Allg. scheint mir ich habe das gleiche Problem, ob die Variable eine Sessionsvariable ist oder nicht." Eine Sessionvariable hat den Vorteil, dass dir der Wert beim Neuladen der Seite bzw. dem Abschicken des Formulars erhalten bleibt.
    • Dieses: "Heisst, es erfolgt eine Zwischenspeicherung falls es Fehlermeldungen hat, damit bei Fehlermeldungen die bereits mutierten Daten nicht verloren gehen und nur wieder der ursprüngliche Datensatz im Formular erscheint und alles wieder neu eingegeben werden muss." würde sich wesentlich einfacher gestalten wenn Du die Daten mit Ajax zum Server schicken würdest, dann bleibt das Formular wie es ist und Du brauchst nichts zwischenzuspeichern.
    • Eine clientseitige Validierung zusätzlich zur serverseitigen würde das Ganze für den Benutzer angenehmer gestalten. Mit der HTML5-Formularvalidierung ist das ja heute schnell getan.

    Verstehe, dann bist Du ja schon weiter als ich dachte :)

    Das müsste sich lösen lassen, indem Du eine Zustandsvariable als Sesssion-Variable führst: Beim ersten Abschicken des Formulars ist diese nicht gesetzt und Du fügst den Datensatz in die Datenbank ein. Sobald das erfolgreich war, setzt Du diese Variable und wenn dann das Formular noch mal abgeschickt wird, machst Du ein Update.

    Bootstrap unterstützt das gleichzeitige Anzeigen von mehreren Modalen nicht:

    https://getbootstrap.com/docs/…al/#toggle-between-modals

    Zitat

    Please note multiple modals cannot be open at the same time—this method simply toggles between two separate modals.

    Man findet diverse Tricks, um diese Beschränkung zu umgehen, z. B. hier:

    https://stackoverflow.com/ques…1/multiple-modals-overlay

    aber ich würde das nicht empfehlen. Besser selber Hand anlegen und die Modale erzeugen.

    Da gibt es zwei Möglichkeiten:

    1. Einfach zu realisieren: Die Daten mit Ajax zyklisch vom Server holen. Nachteil: Die Daten werden nicht spontan akualisiert sondern mit einer kleinen Verzögerung; Daten werden auch abgefragt wenn gar nichts Neues da ist.

    2. Komplizierter zu realisieren: Die Daten vom Server aus mit der Websocket-API an den Browser senden. Vorteil: Die Daten werden nur dann gesendet, wenn es auch erforderlich ist.