Рассмотрим разновидность задачи по сериализации данных — мне нужно было сохранить HTML код в атрибуте контейнера, чтобы вставлять его по определенному событию в верстку.
Можно было сразу вставить кусочки HTML кода в документ и далее манипулировать видимостью контейнеров, но код содержал iframe-ы, и я не хотел чтобы содержимое загружалось вместе с основным документом.
Первая идея — это воспользоваться JSON преобразованием. Но функция json_encode лишь частично совместима с js методом JSON.parse, и на практике вы можете столкнуться с некоторыми проблемами.
Второй подход — это использование функции URL перекодировки, который у меня заработал отлично, им я поделюсь далее.
Со стороны PHP шаблона вы используете функцию urlencode:
|
|
<div class="my-container" data-htmlcode="<?php print urlencode($HTLMstring) ?>"> </div> |
Со стороны скрипта JS (+jQuery) используем следующее преобразование:
|
|
var code = jQuery('.my-container').data('htmlcode'); jQuery('.my-container') .html(decodeURIComponent(code.replace(/\+/g, ' '))); |
Т.е. кроме вызова функции decodeURIComponent нужно заменить символ + пробелами.
Данная запись опубликована в 07.08.2019 23:50 и размещена в рубрике PHP.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Ноябрь 21, 2018 г.
Задача генерации случайной строки возникает часто в алгоритмах связанных с безопасностью.
Начиная с версии PHP 5.3, стала доступна функция
[crayon-6af86c2125fb5692090008/]
которая позволяет генерировать цепочку псевдослучайных байтов произвольной длины. ...
Читать
Ноябрь 13, 2015 г.
Пример хелпера-валидатора на PHP для проверки формата ip адреса.
[crayon-6af86c212616b548663550/]
Функция проверяет является ли формально строка ip-адресом по протоколам ipv4 или ipv6. Возвращает булево значение.
Возможно применение этого кода ...
Читать
Ноябрь 11, 2015 г.
Досрочно закончить исполнение цикла в PHP можно разными способами. Хотя конструкций циклов в PHP много, но принципы одинаковые. Для примера будем использовать цикл for.
[crayon-6af86c212644b699099387/]
Цикл досрочно завершится с помощью оператора break ...
Читать
Декабрь 5, 2012 г.
Как я писал ранее, хороший информ-сервис, это не куча вариантов виджетов для вашего сайта, а, в наиболее ценном случае, возможность грузить данные информ-сервиса в виде xml. В развитом случае, это целый API для разработчика, с возможностью выборки данных ...
Читать