使用PHP填充包含CSV内容的jQuery数组

时间:2016-10-11 12:43:41

标签: javascript php jquery arrays csv

我想使用PHP在我的data数组中填充CSV文件的内容。

我目前的代码:

<script src="http://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script>

<?php
$file = fopen('food.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  print_r($line);
}
fclose($file);
?>

<script type="text/javascript">
var data = <?php echo json_encode($line); ?>;
document.write(data);
</script>

然而,当我运行它时,我得到以下输出:

Array
(
    [0] => McDonalds
    [1] => Fast Food
    [2] => London
)
Array
(
    [0] => Marios
    [1] => Italian
    [2] => Manchester
)

<script type="text/javascript">
var data = false;
document.write(data);
</script>

我猜这里的$line变量是我的问题。

我的food.csv文件:

McDonalds,Fast Food,London
Marios,Italian,Manchester

计划是将data数组合并到下面的演示中:

JSFiddle Demo

2 个答案:

答案 0 :(得分:1)

每次打印一行时都会覆盖前一行。你也在使用jsonencode与非阵列我认为这就是为什么它会给你假,试试这个:

$file = fopen('food.csv', 'r');
$allfile = [];
while (($line = fgetcsv($file)) !== FALSE) {
  print_r($line);
  $allfile[] = $line;
}
fclose($file);
?>

<script type="text/javascript">
var data = <?php echo json_encode($allfile); ?>;
document.write(data);
</script>

答案 1 :(得分:1)

而不是使用print_r()将每一行保存到数组中并json_encode。例如;

<?php
$arr = [];
$file = fopen('food.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  $arr[] = $line;
}
fclose($file);
?>

<script type="text/javascript">
var data = <?php echo json_encode($arr); ?>;
document.write(data);
</script>