Autor Zpráva
Defua
Profil *
Dobrý den,

mám tento problém. Mám text s tagama:

1) $text = "<p>Lorem ipsum dorem...</p>" ten potřebuju nasázet do <div class="text" data-text="<?php echo $text;" ?>">.

Jak ho správně echovat do data atributu? Pomocí nějakého encodování?

2) Následně ho potřebuji v JS načíst $('.text').data('text'); a vložit do divu.

Načíst ho v JS umím ale jak ho encodovat, abych ho do divu vložil zase jako htmlko?

Moc děkuji za pomoc.
aDAm
Profil
pro decodovani html entit jde použít jquery:
var text = '&lt;p&gt;name&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:xx-small;"&gt;ajde&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;da&lt;/em&gt;&lt;/p&gt;';

var output = $("<div />").html(text).text();
console.log(output);
Defua
Profil *
Jo to funguje ale problém je, že když text načtu z vyechované proměnné v data-text, kde to v php proženu htmlentities, tak se rozhraší znaky s diakritikou, když to pak načítám v JS.
Taps
Profil
Defua:
Takt to spíše bude problém někde na úrovni kódování
Defua
Profil *
Zde je kód, kódování by mělo být v pořádku. Stránka je také uložená jako UTF8.

<!doctype html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Test</title>
    <script src="https://code.jquery.com/jquery-1.11.1.js"></script>
</head>
<body>
   <?php 
    $string = "<p>asdsdgdfhfghěšččšřřčžýžýáýáíáíé</p>";
    $stringEntities = htmlentities($string);
    echo "<br />";
    echo "<div class='original' data-text='" . $stringEntities . "'>Lorem ipsum</div>";
    echo "<br />";
    ?>
    <div class="text"></div>
    
    <script type="text/javascript">
    var text = $('div.original').data('text'),
        output = $("<div />").html(text).text();
        
    $('div.text').html(output);
    </script>
</body>
</html>



Přičemž výstup vygenerovaný JSkem je:

<div class="text"><p>asdsdgdfhfghÄ�Å¡Ä�Ä�Å¡Å�Å�Ä�žýžýáýáíáíÃ&copy;</p></div>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: