Оповещение Empy при передаче переменной PHP в javascript (echo работает)

#javascript #php

#javascript #php

Вопрос:

Контекст

Я пытаюсь передать переменную PHP в javascript.

Что я сделал

У меня есть следующая функция, которая используется для оповещения переменной PHP (здесь значение массива)

 <script type="text/javascript">
function validate(){
alert('<?php echo $array_temp[1]; ?>');
}
</script>
  

И соответствующий html.

 <label class="checkbox-inline"><input type="checkbox" id="Hypothesis Testing" name="Hypothesis Testing" onclick="validate()">Hypothesis Testing (3)</label>
  

Это не работает. Предупреждение есть, но содержимое пустое.

Если я просто сделаю это (где-нибудь в моем html-документе):

 <?php echo $array_temp[1]; ?>
  

Он выводит содержимое переменной ($array_temp[1] ).

Что я пробовал

Многие вещи:-( Я играл с «и » и пытался кодировать json.

Комментарии:

1. просто поместите javascript в свой html-документ

2. Сработало!!!!!!!!

Ответ №1:

Лучший и рекомендуемый способ передачи переменной PHP (серверного языка) в javascript — это использование rest API

PHP-код

 <?php
header('Content-Type: application/json');

echo json_encode($array_temp, JSON_HEX_APOS | JSON_HEX_AMP);
  

с URL /myapi/url
Получите его в ajax-запросе с помощью fetch, axios, ajax (jquery), …

Javascript

 fetch('/myapi/url').then(function(data){
 return data.json();
}).then(data => {
  alert(data);
})
  

Комментарии:

1. Хотя этот подход верен, он не отвечает на вопрос. Хитрость заключается в правильном цитировании, в зависимости от того, куда вставляется значение. json_encode может избегать апостроф и сохранять необработанные кавычки, он также может избегать < , > , и amp; не нарушать HTML-код. Например, если вы хотите вставить значение непосредственно в атрибут HTML, затем заключите атрибут в апострофы и используйте JSON_HEX_APOS | JSON_HEX_AMP в качестве второго параметра.

2. Не забуду JSON_HEX_TAG и JSON_HEX_QUOT .

3. JSON_HEX_TAG и JSON_HEX_QUOT не являются необходимыми в значении атрибута HTML, цитируемом апострофами. Фактически, использование апострофов позволяет эффективно представлять кавычки и значительно уменьшает размер объектов в JSON.