Просто чтобы расширить ответ @TJ Crowder.
json_encode
хорошо справляется с простыми строками html, однако, по моему опыту, json_encode
часто смущается (или становится довольно трудно избежать) более сложным вложенным html, смешанным с php.Если вы находитесь в этом положении, вам нужно учесть два варианта: сначала кодировать / декодировать разметку с помощью чего-то вроде [base64_encode][1]
/ декодировать (немалое снижение производительности) или (и, возможно, желательно) быть болееизбирательно в том, что вы передаете через json, и вместо этого создайте необходимую разметку на стороне клиента.