【问题标题】:Populate jQuery array with contents of CSV using PHP使用 PHP 用 CSV 的内容填充 jQuery 数组
【发布时间】:2017-02-20 00:16:51
【问题描述】:

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

我当前的代码:

<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

【问题讨论】:

标签: javascript php jquery arrays csv


【解决方案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>

【讨论】:

  • 哇!!你很快 :-D var data = [["McDonalds","Fast Food","London"],["Marios","Italian","Manchester"]]; document.write(data); 是我的新输出 - 它工作得很好:-)
  • 必须等待 6 分钟才能接受您的回答。谢谢:-)
【解决方案2】:

而不是使用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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2020-07-20
    • 2012-11-27
    • 2012-10-20
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多