echo JSON in Attribut

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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

      Comment


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

        Originally posted by aschne1 View Post
        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.
        Last edited by h3ll; 06-08-2020, 06:19.

        Comment


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

          Comment


          • #6
            Originally posted by aschne1 View Post
            Danke für deinen Tipp, läuft übrigens auch mit htmlspecialchars() nicht
            "läuft nicht" ist keine brauchbare Fehlerbeschreibung. Damit kann man nix anfangen.

            Comment

            Working...