/
Вопросы и ответы
/
JavaScript
/

Как передать из php в javascript

Как передать из php в javascript

5 лет назад

Человек-Молекула

Ответы

0

Для передачи данных из PHP в JavaScript можно использовать несколько способов:

Использование тега <script> внутри PHP-кода и вставка переменной внутри скрипта:

1
2
3
4
5
6
7
<?php
$my_var = "Hello, World!";
?>
<script>
var js_var = "<?php echo $my_var; ?>";
console.log(js_var); // выводит "Hello, World!" в консоль
</script>

Создание скрытого элемента на странице и передача значения через его атрибут:

1
2
3
4
5
6
7
8
<?php
$my_var = "Hello, World!";
?>
<input type="hidden" id="my_var" value="<?php echo $my_var; ?>">
<script>
var js_var = document.getElementById("my_var").value;
console.log(js_var); // выводит "Hello, World!" в консоль
</script>

Использование AJAX-запроса для получения данных из PHP-скрипта:

1
2
3
4
5
6
7
8
9
10
<?php
$my_var = "Hello, World!";
echo $my_var; // выводим переменную на экран
?>
<script>
let xhr = new XMLHttpRequest();
xhr.open('GET', 'script.php', false); // false - синхронный запрос
xhr.send();
console.log(xhr.responseText); // выводит "Hello, World!" в консоль
</script>

В каждом из этих способов мы передаем переменную $my_var из PHP в JavaScript. Выберите тот способ, который подходит вашей задаче лучше всего.

4 года назад

Aleksey

0

PHP выполняется на сервере, JavaScript — в браузере. Поэтому данные передают одним из двух способов: PHP вписывает их в страницу или JavaScript запрашивает их у сервера.

Вписать данные в страницу через json_encode

1
2
3
4
5
6
7
<?php
$user = ['id' => 7, 'name' => 'Анна', 'roles' => ['admin']];
?>
<script>
  const user = <?= json_encode($user, JSON_UNESCAPED_UNICODE | JSON_HEX_TAG) ?>;
  console.log(user.name); // Анна
</script>

json_encode превращает массив PHP в объект JavaScript. Строки он экранирует сам: кавычки и переносы строк в данных не сломают скрипт.

JSON_HEX_TAG заменяет < и > на коды. Без него текст </script> внутри данных, например из комментария пользователя, закроет тег и откроет дорогу XSS-атаке.

Вставлять значение без json_encode — const name = '<?= $name ?>'; — опасно: апостроф в имени сломает код.

Через data-атрибут

1
<div id="app" data-user-id="<?= htmlspecialchars($userId) ?>"></div>

Значение из атрибута всегда приходит строкой.

Запросом к серверу

Для данных, которые нужны после загрузки страницы, сделайте PHP-скрипт, который возвращает JSON:

1
2
3
4
<?php
// api/user.php
header('Content-Type: application/json; charset=utf-8');
echo json_encode(['name' => 'Анна'], JSON_UNESCAPED_UNICODE);

Обратно: из JavaScript в PHP

Только запросом: формой или через fetch с методом POST. В PHP данные придут в $_POST или в теле запроса — json_decode(file_get_contents('php://input'), true).

PHP и работу с JSON разбирают в профессии «PHP-разработчик».

2 дня назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845