Javascript JSON请求返回';未定义';对于所有键/值对

Javascript JSON请求返回';未定义';对于所有键/值对,javascript,php,html,json,Javascript,Php,Html,Json,我有一个PHP文件,它将Google电子表格解析为JSON: <?php header('Content-type: application/json'); // Set your CSV feed $feed = 'https://docs.google.com/spreadsheets/d/1IwFDZp1dLBR931OnJpEgW9ojrLx063m5_dhkqKGgugc/pub?output=csv'; // Arrays we'll use later $keys = a

我有一个PHP文件,它将Google电子表格解析为JSON:

<?php
header('Content-type: application/json');

// Set your CSV feed
$feed = 'https://docs.google.com/spreadsheets/d/1IwFDZp1dLBR931OnJpEgW9ojrLx063m5_dhkqKGgugc/pub?output=csv';

// Arrays we'll use later
$keys = array();
$newArray = array();

// Function to convert CSV into associative array
function csvToArray($file, $delimiter) { 
  if (($handle = fopen($file, 'r')) !== FALSE) { 
    $i = 0; 
    while (($lineArray = fgetcsv($handle, 4000, $delimiter, '"')) !== FALSE) { 
      for ($j = 0; $j < count($lineArray); $j++) { 
        $arr[$i][$j] = $lineArray[$j]; 
      } 
      $i++; 
    } 
    fclose($handle); 
  } 
  return $arr; 
} 

// Do it
$data = csvToArray($feed, ',');

// Set number of elements (minus 1 because we shift off the first row)
$count = count($data) - 1;

//Use first row for names  
$labels = array_shift($data);  

foreach ($labels as $label) {
  $keys[] = $label;
}

// Add Ids, just in case we want them later
$keys[] = 'id';

for ($i = 0; $i < $count; $i++) {
  $data[$i][] = $i;
}

// Bring it all together
for ($j = 0; $j < $count; $j++) {
  $d = array_combine($keys, $data[$j]);
  $newArray[$j] = $d;
}

// Print it out as JSON
echo json_encode($newArray);

?>

您正在引用该CSV文件中不正确的列名。试试看

for (i = 0; i < arr.length; i++){
    out += "<tr><td>" +
    arr[i].candidato +
    "</td><td>" +
    arr[i].votos +
    "</td><td>" +
    arr[i].porcentaje +
    "</td></tr>";
}
for(i=0;i
大多数csv2array函数都是毫无意义的。它也应该是
而($row=fgetcsv(…){$arr[]=$row;}
。您是否进行过任何基本调试,如
var\u dump($newArray)
console.log(response,arr)
以查看您构建了什么以及它是如何实现的?
for (i = 0; i < arr.length; i++){
    out += "<tr><td>" +
    arr[i].candidato +
    "</td><td>" +
    arr[i].votos +
    "</td><td>" +
    arr[i].porcentaje +
    "</td></tr>";
}