Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Yi2中提供Javascript中外部csv文件的路径?_Javascript_Charts_Yii2 - Fatal编程技术网

如何在Yi2中提供Javascript中外部csv文件的路径?

如何在Yi2中提供Javascript中外部csv文件的路径?,javascript,charts,yii2,Javascript,Charts,Yii2,我使用的是yii2,我需要使用tempersons.csv文件来获得一个图形,而使用普通php它工作正常,但是在yii2中,csv文件的路径会导致一个错误 我的视图文件代码如下: <div id="graphdiv3" style="width:500px; height:300px;"></div> <script type="text/javascript"> var filename = "Date,Temperature\n" + "2008

我使用的是yii2,我需要使用tempersons.csv文件来获得一个图形,而使用普通php它工作正常,但是在yii2中,csv文件的路径会导致一个错误

我的视图文件代码如下:

<div id="graphdiv3"
 style="width:500px; height:300px;"></div>
<script type="text/javascript">
var filename =  "Date,Temperature\n" +
   "2008-05-07,75\n" +
   "2008-05-08,70\n" +
   "2008-05-09,80\n";
console.log(filename);
 g3 = new Dygraph(
   document.getElementById("graphdiv3"),
  "///var/www/devicesadmin/yii-app/views/data-chart/temperatures.csv",
   {
 legend: 'always',
 title: 'NYC vs. SF',
 showRoller: true,
 rollPeriod: 14,
 ylabel: 'Temperature (F)',
   }
 );
</script>

var filename=“日期、温度\n”+
“2008-05-07,75\n”+
“2008-05-08,70\n”+
“2008-05-09,80\n”;
log(文件名);
g3=新动态图(
document.getElementById(“graphdiv3”),
“///var/www/devicesadmin/yii-app/views/data-chart/temperatures.csv”,
{
传说:“永远”,
标题:“纽约vs.旧金山”,
是的,
展期:14,
ylabel:“温度(F)”,
}
);
我的csv文件位于同一文件夹的视图文件夹中。 filename Javascript变量是csv文件的一个示例,它工作正常,但直接调用该文件会导致返回错误

使用小部件是不公平的,因为许多选项都不起作用

  • 我认为没有任何特殊的理由将文件放在
    视图
    文件夹中,也不应该放在那里,您应该将其放在项目的
    web
    目录中,并使用相对于
    web
    目录的路径

  • 声明一个末尾有换行符的变量有什么意义

    var filename =  "Date,Temperature\n" +
       "2008-05-07,75\n" +
       "2008-05-08,70\n" +
       "2008-05-09,80\n";
    
    这不是有效的javascript代码,只会导致如下错误

    未捕获的语法错误:无效或意外标记

  • 您应该在DOM ready上运行javascript,以便在调用Dygraph构造函数之前可以使用源库,并且为了在视图中编写javascript代码,我更愿意使用它来提高可读性

  • 视图中的代码应该如下所示

    <?php
        use yii\web\View;
    
        $js = <<<JS
    
        g3 = new Dygraph(
            document.getElementById("graphdiv3"),
            "/temperatures.csv",
            {
            legend: 'always',
            title: 'NYC vs. SF',
            showRoller: true,
            rollPeriod: 14,
            ylabel: 'Temperature (F)',
            }
        );
    JS;
    
        $this->registerJs($js, View::POS_READY);
    ?>
    <div id="graphdiv3" style="width:500px; height:300px;"></div>
    
    
    
    no,没有yii2框架就可以正常工作,但不幸的是,我需要在yii2中保存文件,这里需要考虑的是文件保存在哪里以及如何引用@视图/数据图表/温度.csv?使用别名?@Sfili_81也不起作用。为什么要将其放在“视图”文件夹中?这样做有什么特别的原因吗?为什么不把它放在web可访问的目录中,只使用相对于web目录的路径,就像如果文件位于
    web
    文件夹的根目录中,那么您将在javascript中提供路径,比如
    '/tempers.csv'