でのsetIntervalでAJAXを行うにはどのように、私はAJAXを行うと、setInterval
でページを更新し、次のようにすることができます通常のPHPで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);
Laravel 5.4では、これをやりなおす方法はわかりません。コントローラとビューでは、データの受け渡しが複雑になります。
私は私のコントローラで次の操作を行って試してみた:
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);
});
ルート
Route::get('/fetch-data', '[email protected]');
私は$.ajax
意志からurl: "/fetch-data"
を呼び出していることを考えていました応答としてjsonデータを吐き出す代わりに、私にwを示している私が望むものではない穴のhtmlページ。
単純なルーティングと見やすいデータのために、その罰金。ページを更新せずにコンテンツを更新するために2秒ごとにビューを更新する...非常に複雑に思えます。
これをLaravel 5.4でどのように実装できるかについてのご意見は大変ありがたいです。
を行う - > JSON(配列( 'JSON '=> $ results_array []) – Surace