mercredi 22 février 2017

How to do AJAX with setInterval in Laravel 5.4

In normal PHP, I can do AJAX and update the page with setInterval as follows:

script.js

setInterval(function(){
    $.get( "fetch_json.php", function( data ) {
    var jsonData = JSON.parse(data);
    $.each(jsonData, function(itemKey,itemObject){
        // update div without refreshing the page
    }
},1000);

fetch_json.php

$results_array = [];
$file = new SplFileObject("file.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
    $results_array[] = $row[0];
    $results_array[] = $row[1];
    $results_array[] = $row[2];
    $results_array[] = $row[3];
}
echo json_encode($results_array);

In Laravel 5.4, I dont know how to do this anymore. With Controllers and Views, passing data seems complicated.

I've tried doing the following in my Controller:

class PageController extends Controller
{
    public function fetchData()
    {
        $results_array = [];
        $file = new \SplFileObject("file.csv");
        $file->setFlags(\SplFileObject::READ_CSV);
        foreach ($file as $row) {
            $results_array[] = $row[0];
            $results_array[] = $row[1];
            $results_array[] = $row[2];
            $results_array[] = $row[3];
        }
     $json = json_encode($results_array);
     return view('page',['json'=>$json]);
    }
}

script.js

$(document).ready(function(){
setInterval(function(){
    $.ajax({
      url: "/fetch-data",
      success: function( response ) {
        // update div
      }
    });
},1000);
});

Routes

Route::get('/fetch-data', 'PageController@fetchData');

I was thinking that by calling url: "/fetch-data" from $.ajax will spit the json data as a response but instead, its showing me the whole html page which is not what I want.

For simple routing and passing data back to view, its fine. but updating the view every couple of seconds to update the contents without refreshing the page... it seems very complicated.

Any ideas on how I can implement this in Laravel 5.4 is greatly appreciated.



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2mc4YtK
via IFTTT

Aucun commentaire:

Enregistrer un commentaire