Im normalen PHP, ich kann AJAX tun und die Seite mit setInterval
wie folgt aktualisieren:vorgehensweise AJAX mit setInterval in Laravel 5.4
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, weiß ich nicht mehr, wie das geht. Mit Controllern und Ansichten scheint die Weitergabe von Daten kompliziert.
Ich habe in meinen Controller folgendes versuchte dabei:
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);
});
Routen
Route::get('/fetch-data', '[email protected]');
Ich dachte, dass durch url: "/fetch-data"
von $.ajax
Aufruf wird spucke die JSON-Daten als Antwort aus, aber stattdessen zeigt sie mir den w Loch HTML-Seite, die nicht das ist, was ich will.
Zum einfachen Weiterleiten und Weiterleiten von Daten zur Ansicht, ist es in Ordnung. aber die Ansicht alle paar Sekunden aktualisieren, um den Inhalt zu aktualisieren, ohne die Seite zu aktualisieren ... es scheint sehr kompliziert zu sein.
Alle Ideen, wie ich dies in Laravel 5.4 implementieren kann, werden sehr geschätzt.
Sie Json Antwort zurück nehme nicht an Rückkehr Rückkehr Antwort anzuzeigen() -> json (array ('json '=> $ results_array [])) – Surace