То, что я пытаюсь сделать, – это использование php в атрибуте jquery
append. что-то вроде этого:
$('a.popup[href^=#]').click(function() { $('body').append('<div id="content" class="popup_block"><?php include( SITE_URL . 'activity/popup.php' ) ?></div>');
Мой скрипт находится в php-файле, на стороне сервера, так что я мог бы это сделать, но я не уверен, как это сделать. Когда дело доходит до html, css и т. Д., Я могу объединить его и php в php-файле, но когда дело доходит до javascript, его кавычки меня смущают, а также когда и как использовать скобки. Это может показаться странным. В любом случае, имеет ли CDATA какое-либо отношение к этому? Я никогда не использовал его раньше, но я должен по крайней мере научиться его использованию.
Интерпретатор PHP будет искать теги <?php
и ?>
И попытаться оценить что-либо между ними. Это не касается окружающих цитат. Вы должны убедиться, что результат того, что делает PHP, является действительным Javascript.
var foo = '<?php include 'foo.php'; ?>';
становится
var foo = 'This is the content of foo.php.';
после того, как PHP будет с этим выполнен.
Если в foo.php
есть кавычки, это может стать следующим:
var foo = 'This is the 'content' of foo.php.';
который является недопустимым синтаксисом Javascript. Вам нужно будет избежать любого символа foo.php
который может вызвать такой недействительный синтаксис, например, с помощью addslashes
. Это может быть довольно громоздким, поэтому я бы посоветовал искать альтернативу для этого.
Вы можете кодировать значение с помощью JSON, который определенно синтаксически безопасен:
var foo = <?php echo json_encode("Some string with 'quotes'."); ?>;
Генерация кода в коде всегда сложна, старайтесь не делать этого и придерживаться нейтральных форматов обмена данными, таких как JSON или XML.
Если вы на 100% уверены, что у вас нет каких-либо одиночных кавычек в вашем включении, не должно быть никаких проблем с тем, как у вас есть.
Если вы хотите визуализировать его, скопируйте весь свой сгенерированный код из включенного php-файла и вставьте его прямо на главную страницу внутри append()
. Посмотрите, как это выглядит. Это даст вам хорошее представление о том, что будет в браузере.