Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте!
Меня интересует как решить проблему нормальными общепринятыми способами и без костылей.
Пользователь проходит аунтификацию и во view попадает переменная $user со всеми данными о пользователе из БД.
Есть у меня JS скрипт, который должен отправить ajax запрос и ему нежны эти данные. Как их получить в JS.
(Вообще скрипты на typescript, но как мне кажется это суть дела не меняет)
Не в сети
прокинуть данные в html – проще простого – json_encode выдаёт их в в виде, который фактически соответствует синтаксису js. например
<script>
var serverData = <?php echo json_encode($serverData) ?>;
</script>
ещё можно воспользоваться малоизвестной возможностью jQuery.data автоматически распознавать и декодировать json из дата-атрибутов. например
<span id="server-data" data-from-server='<?php echo json_encode($serverData) ?>'>
<script>
$(function() {
var serverData = $('#server-data').data('fromServer');
})
</script>
для глобальных данных я обычно использую первый вариант. если у меня есть js-компоненты, то для передачи данных и настроек в них – удобнее второй
ps. во втором варианте – обрати внимание на одиночные кавычки вокруг дата-атрибута в хтмл. json_encode искейпит кавычки в текстах и использует двойные сам. поэтому чтобы не возиться с тем чтобы и их искейпить с htmlspecialchars, проще заключить значение в одинарных – это вполне валидный html5
Изменено constb (14.02.2017 06:11:43)
Не в сети
Большое Спасибо !
Не в сети
Страницы 1