簡體   English   中英

將php數組傳遞到json文件(PHP-> Json-> JS)

[英]pass php array to json file (PHP ->Json->JS)

我有php代碼

<?php
$csv = array_map('str_getcsv', file('/web2016-master/projectclass/data/file.csv'));
array_walk($csv, function(&$a) use ($csv) {
    $a = array_combine($csv[0], $a);
});
array_shift($csv); # remove column header
json_encode($csv);
?>

我有一個json文件,我不會在其中傳遞json_encode($csv)

而且我有使用json文件的JavaScript

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function() {
  if (xhr.readyState === 4) {
    var file = JSON.parse(xhr.responseText);
    var statusHTML = '<tr>';

    for (var i = 0; i < file.length; i += 1) {
      statusHTML += '<td>';
      statusHTML += file[i].FirstName;
      statusHTML += '</td>';
      statusHTML += '<td>';
      statusHTML += file[i].LastName;
      statusHTML += '</td>';
      statusHTML += '<td>';
      statusHTML += '<a href="#">advise</a>';
      statusHTML += '</td>';
      statusHTML += '</tr>';
    }
    document.getElementById('studentList').innerHTML = statusHTML;
  }
};
xhr.open('GET', 'data/file.json');
xhr.send();

我需要在json文件中包含什么,以便PHP-> Json-> JS。

檢出file_put_contents

<?php
$csv = array_map('str_getcsv', file('/web2016-master/projectclass/data/file.csv'));
array_walk($csv, function(&$a) use ($csv) {
    $a = array_combine($csv[0], $a);
});
array_shift($csv); # remove column header
file_put_contents('data/file.json', json_encode($csv));
?>

您還可以回顯內容並使用輸出,盡管這將需要您對每個請求進行解析(除非您放置了一些緩存):

<?php
$csv = array_map('str_getcsv', file('/web2016-master/projectclass/data/file.csv'));
array_walk($csv, function(&$a) use ($csv) {
    $a = array_combine($csv[0], $a);
});
array_shift($csv); # remove column header
header('Content-Type: application/json');
echo json_encode($csv);
?>

並讓您的JavaScript請求您的PHP文件:

xhr.open('GET', 'yourfile.php');

您需要調用PHP文件。 Javascript對PHP進行ajax調用,該調用返回JSON。 除非您有問題中未提到的其他要求,否則不需要中間的json文件。

xhr.open('GET', 'data/file.php');

您可能需要稍微清理一下javascript邏輯,請看一下這篇文章,以獲取不使用jQuery進行ajax調用的示例。 如何在沒有jQuery的情況下進行AJAX調用?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM