Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.02.2017 22:14:50

Javascript и получение данных

Здравствуйте!

Меня интересует как решить проблему нормальными общепринятыми способами и без костылей.
Пользователь проходит аунтификацию и во view попадает переменная $user со всеми данными о пользователе из БД.
Есть у меня JS скрипт, который должен отправить ajax запрос и ему нежны эти данные. Как их получить в JS.

(Вообще скрипты на typescript, но как мне кажется это суть дела не меняет)

Не в сети

#2 14.02.2017 06:08:41

Re: Javascript и получение данных

прокинуть данные в 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)

Не в сети

#3 14.02.2017 07:06:18

Re: Javascript и получение данных

Большое Спасибо ! smile

Не в сети

Подвал раздела