echo JSON in Attribut

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

  • echo JSON in Attribut

    Moin zusammen

    Bitte entschuldigt, ich bin noch sehr neu in PHP und vermutlich ist mein Problem recht simpel zu lösen. Verbringe aber schon einige Zeit damit und deshalb wollte ich einmal fragen, ob mir jemand behilflich sein kann?

    Bis anhin gebe ich per echo Daten an ein Attribut in HTML aus und das funktioniert auch recht gut. Nur wenn ich einen JSON übergebe, dann habe ich Probleme.

    Beispiel:

    $meta = '{"id":"630","meta":"3","lot":"314485 0103 00000271","exp":"2025-01-01"}';

    echo '<input type="text" class="form-control" metaData="'.$meta.'" name="newProduct" value="'.$metatext.'">';
    Ergebnis: metaData="{" id":"630","meta":"3","lot":"314485="" 0103="" 00000271","exp":"2025-01-01"}"=""


    Wenn ich bei der Ausgabe im Attribut die doppelten Anführungszeichen rausnehme, dann erhalte ich folgendes Ergebnis:

    echo '<input type="text" class="form-control" metaData='.$meta.' name="newProduct" value="'.$metatext.'">';
    Ergebnis: metaData="{&quot;id&quot;:&quot;630&quot;,&quot;meta&quot;:&quot;3&quot;,&quot;lot&quot;:&quot;31448 5" 0103="" 00000271","exp":"2025-01-01"}=""

    Eigentlich möchte ich jedoch diese Ausgabe im metaData-Attribut:
    metaData="{"id":"630","meta":"3","lot":"314485 0103 00000271","exp":"2025-01-01"}"

    Wie bewerkstellige ich das am Besten, bzw was mache ich falsch.

    Danke + Gruss

    Armin

  • #2
    PHP-Code:
    $meta '...';
    $data json_decode($meta);
    print_r($data); 
    Der Rest ist reine Array-Verarbeitung.

    Gruß
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo Peter

      Danke für Deine Antwort. Habe ich auch schon so gehabt.

      Leider erhalte ich so vor "id" ein Leerzeichen, es wird also zu " id". So funktioniert es nicht.

      Trotzdem danke

      Kommentar


      • #4
        Du beachtest nicht den Kontextwechsel nach HTML. Werte, die in HTML-Code eingefügt werden, sollten immer mit htmlspecialchars() behandelt werden.

        Zitat von aschne1 Beitrag anzeigen
        Eigentlich möchte ich jedoch diese Ausgabe im metaData-Attribut:
        metaData="{"id":"630","meta":"3","lot":"314485 0103 00000271","exp":"2025-01-01"}"
        Du möchtest fehlerhaftes HTML und das wird nicht funktionieren.

        Bevor du PHP programmierst, solltest du erst mal HTML-Grundlagen lernen. Das würde einiges einfacher machen.
        Zuletzt geändert von h3ll; 06.08.2020, 07:19.

        Kommentar


        • #5
          Danke für deinen Tipp, läuft übrigens auch mit htmlspecialchars() nicht

          Kommentar


          • #6
            Zitat von aschne1 Beitrag anzeigen
            Danke für deinen Tipp, läuft übrigens auch mit htmlspecialchars() nicht
            "läuft nicht" ist keine brauchbare Fehlerbeschreibung. Damit kann man nix anfangen.

            Kommentar

            Lädt...
            X