Обычно используемый формат обмена для JavaScript - JSON с использованием json_encode
. Файл PHP, подобный этому:
<?php
$data = array("test" => "var", "intvalue" => 1);
echo json_encode($data);
?>
, затем возвращает литерал объекта JavaScript, подобный этому:
{
"test" : "var",
"intvalue" : 1
}
Вы можете напрямую отобразить его в переменной JavaScript на своей странице, например:
var data = <?php echo json_encode($data)?>;
... или запросить его через Ajax (например, используя getJSON в jQuery ).
Если вам просто нужно вывести строку в атрибут тега, используйте htmlspecialchars
. Предполагая, что переменная:
<?php
$nifty = "I'm the nifty attribute value with both \"double\" and 'single' quotes in it.";
?>
... вы можете вывести ее так:
<div data-nifty-attr="<?php echo htmlspecialchars($nifty)?>">...</div>
... или, если вы используете короткие теги:
<div data-nifty-attr="<?= htmlspecialchars($nifty)?>">...</div>
<?php
$my_php_var = array(..... big, complex structure.....);
?>
<script type="text/javascript">
my_js_var = <?=json_encode ($my_php_var)?>;
</script>
Есть 3 способа сделать это:
Echo "var user = '$ user '; ";?>
. Работает, но неаккуратно. Я использую их все вместе в начале HTML. Кажется достаточно чистым для моих нужд :)