Задать вопрос
@id_baton4eg

Как передать более 1 строки html через data-*?

Использую timetable.js, где содержание записи передается через дата атрибут, при этом html в одну строку передается корректно, но если содержание содержит более 1 строки (т.е. есть перенос), то оно просто передает выводится вовсе.

Скрипт выводит данные в формате



Как правильно передать полностью контент через дата атрибут ?
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
razumkov2015
@razumkov2015
"Программист" https://vk.com/cgs_game
Не совсем понял вопрос, но мне кажется, что можно просто все закодировать в JSON, а где надо, парсить его.

UPDATE:
Сделайте так: echo "<pre>$data</pre>"
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
в атрибутах перенос строки нельзя, ай-ай-ай. Сделайте скрытый блок и туда кидайте или в localStorage
Ответ написан
Комментировать
Exploding
@Exploding
wtf?
Так может?
//v1
$dataToHtml = nl2br($dataToHtml);
echo "<tag data-mydata='$dataToHtml'>Ура!</tag>";

//v2
$dataToHtml = base64_encode($dataToHtml);
echo "<tag data-mydata='$dataToHtml'>Ура!</tag>";

А в js тогда:
var encData = $(this).data('mydata');
var decodedData = this.atob(encData);

P.S. Не проверял:) Но должно работать.
Ответ написан
@synapse_people
-сделай вложенный элемент с CDATA.
или
-замени \r? \n на какой-то символ, который не будет использоватся в значениях и считай, что это перенос строки
- addslashes , затем stripslashes
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы