Что лучший способ состоит в том, чтобы передать переменную PHP JavaScript? [дубликат]

13
задан Gregory Bolkenstijn 4 May 2010 в 14:15
поделиться

4 ответа

Общая передача данных

Обычно используемый формат обмена для 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>
25
ответ дан 1 December 2019 в 19:30
поделиться
<?php
  $my_php_var = array(..... big, complex structure.....);
?>
<script type="text/javascript">
  my_js_var = <?=json_encode ($my_php_var)?>;
</script>
5
ответ дан 1 December 2019 в 19:30
поделиться

Есть 3 способа сделать это:

  • Вывести их напрямую в исходный код javascript: . Работает, но неаккуратно.
  • Передайте их через запрос ajax. Это самое близкое к собственной передаче переменных, но есть обратная сторона медали: требуется дополнительный HTTP-запрос.
  • То, что вы делаете, то есть передаете их, создавая скрытые поля формы и затем читая их.
2
ответ дан 1 December 2019 в 19:30
поделиться

Я использую их все вместе в начале HTML. Кажется достаточно чистым для моих нужд :)

3
ответ дан 1 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

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