Обновление данных в представлении без обновления страницы - Laravel - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу часто загружать данные через 60 секунд без обновления страницы. Строка кода:

<div id="callmeauto">@include('custome.myquestionodds')</div>

Код в «myquestionodds.blade. php», в который производится выборка данных. Работает нормально. Но я хочу часто вызывать этот файл blade php и показывать в "callmeauto" div. Я попробовал некоторые коды отсюда. Но не работает. Как пример ниже. Я уверен, что я не в том направлении.

   $(document).ready(function() {
        $('#callmeauto').load('/custome/myquestionodds');
      });

Ответы [ 3 ]

1 голос
/ 04 февраля 2020

Лучший способ использовать инфраструктуру веб-интерфейса для извлечения данных из конечной точки в формате JSON.

Например, вы можете попробовать использовать Vue. js инфраструктуру. В простом случае ваша проблема будет решена следующим образом.

Vue({
    el: '#callmeauto',
    data: {
        contentToRender: "",
    },
    created() {
        this.loadContent();
        setInterval(this.loadContent, 60000)
    },
    methods: {
        loadContent(){
            axios.get('/custome/myquestionodds').then((response)=>{
                this.contentToRender = response.data;
            })
        }
    }
});

В вашем шаблоне вы просто используете синтаксис шаблона:

<div id="callmeauto">{{ contentToRender }}</div>

Для использования vue. js вы будете нужно установить его. Также ax ios библиотека для совершения ajax звонков. Легкий путь через CDN:

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js></script>
0 голосов
/ 05 февраля 2020

Ошибка:

app.js:4 GET https://example.com/custome/myquestionodds 500
send           @    app.js:4
ajax           @    app.js:4
loaddata       @    (index):1366
setInterval (async)     
(anonymous)    @    (index):1376
j              @    app.js:2
k              @    app.js:2
setTimeout (async)      
(anonymous)    @    app.js:2
i              @    app.js:2
fireWith       @    app.js:2
fire           @    app.js:2
i              @    app.js:2
fireWith       @    app.js:2
ready          @    app.js:2
S              @    app.js:3
0 голосов
/ 04 февраля 2020

использование setInterval с 60 секундами

function loaddata(){

    $.ajax({
        url: "{{ url('custome/myquestionodds') }}",
        type: 'GET',
        success: function(data) {
            $('#callmeauto').html(data);
        }     
    });
}

$(document).ready(function() {
   setInterval(loaddata, 60000);
});
...