Получение данных HTTP-запроса с помощью PHP в Laravel View? - PullRequest
0 голосов
/ 23 июня 2019

Я новичок в разработке веб-приложений с помощью Laravel.Я хочу, чтобы предложения отображались пользователям в области панели инструментов, чтобы они могли получать вознаграждения.

Дело в том, что мне нужно получить предложения от внешнего API в формате JSON.Сейчас я делаю выборку JS в верхней части файла представления блейд-панели и успешно оповещаю данные следующим образом:

<script>

    var offers;

    fetch('https://mobverify.com/api/v1/?affiliateid=71864&country=US&ctype=2')
        .then(function(response) {
            return response.json();
        })
        .then(function(myJson) {
      offers = JSON.stringify(myJson.offers);
      alert (offers);
        });

</script>

Но где я запутался, это находится ниже в файле,Я хочу сделать для каждого в PHP, чтобы создать список со всеми предложениями для пользователей, чтобы завершить.Что-то вроде этого:

<ul>
    @foreach($offers as $offer)
      <li>{{$offer->name}}</li>
    @endforeach
</ul>

Как я могу передать переменную, сохраненную в выборке Javascript, в мой PHP для прохождения цикла?Должен ли я делать это в моем контроллере, а не прямо в представлении?Любая помощь будет принята с благодарностью.Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Используя собственный JavaScript, это может быть похоже на следующий код:

<script>
var offers;
fetch('https://mobverify.com/api/v1/?affiliateid=71864&country=US&ctype=2')
    .then(function(response) {
        return response.json();
    })
    .then(function(myJson) {
        offers = myJson.offers;
        for(i=0;i<offers.length;i++) {
            var node = document.createElement("LI");
            var textnode = document.createTextNode(offers[i].name);
            node.appendChild(textnode);
            document.getElementById("ul").appendChild(node);
        }
    });

</script>

<ul id="ul">
</ul>
0 голосов
/ 23 июня 2019

PHP выполняется на сервере, генерирует html и js, затем передается клиенту, где может выполняться js. Выполняемый js никоим образом не может влиять на то, что рендерил php, потому что, ну, он уже был рендерится ...

Вам придется изменить загруженную структуру DOM с помощью js (возможно, jQuery или около того).

...