【问题标题】:Uncaught SyntaxError: Unexpected token < in CodeIgniterUncaught SyntaxError: Unexpected token < in CodeIgniter
【发布时间】:2018-01-07 17:40:36
【问题描述】:

我目前正在处理 CodeIgniter 图表,但收到如下错误:

Uncaught SyntaxError: Unexpected token

并且图表未加载显示为空白。

var data_course_stats = google.visualization.arrayToDataTable([
          ['Course', 'Time spent',{ role: 'style' }],
           <?php 
           $i=0;
           foreach ($timespent_stats as $course) { $course = (object)$course;
           $color_val = 'green';
            if(count($i<count($timespent_stats)))
              $color_val = $colors[$i++];
            ?>
         ['<?php echo $course->title;?>', <?php echo $course->spent_seconds/60;?>,'<?php echo $color_val; ?>'],
         <?php } ?>
        ]);

        var options_course_stats = {
          title: 'Course Wise Spent Time in Minutes',
          curveType: 'function',
           height: 400,
             bar: {groupWidth: "50%"},
          legend: { position: "none" },
};

【问题讨论】:

  • 代码似乎不完整 - 周围是否有 HTML?开发控制台是否还会报告哪一行有错误?
  • 为什么你的一些 PHP 有引号,而其他的没有?您是在尝试将 PHP 回显 到 JavaScript 中,还是尝试在 string 中包含 PHP 代码?无论哪种方式,这都是不一致的。

标签: javascript php codeigniter


【解决方案1】:

对于较长的块,要保持 PHP 处于打开状态 - 您会遇到麻烦,因为您正在混合和匹配打开和关闭。改变这个:

       <?php 
       $i=0;
       foreach ($timespent_stats as $course) { $course = (object)$course;
       $color_val = 'green';
        if(count($i<count($timespent_stats)))
          $color_val = $colors[$i++];
        ?>
     ['<?php echo $course->title;?>', <?php echo $course->spent_seconds/60;?>,'<?php echo $color_val; ?>'],
     <?php } ?>

到这里:

<?php 
       $i=0;
       foreach ($timespent_stats as $course) { 
         $course = (object)$course;
         $color_val = 'green';
         if(count($i<count($timespent_stats))) {
            $color_val = $colors[$i++];

            echo "['" . $course->title . "','" .  
                        $course->spent_seconds/60 . "','" . 
                        $color_val . "']"; 
         }
       }
       ?>

【讨论】:

  • 我有另一个问题,我在 codeigniter 中开发了一个插件。它在 localhost 中工作得很好,但是当我将它上传到服务器时,它只显示半屏,当我点击检查元素时不显示显示错误,例如内部服务器错误 500
  • Sairam,您需要为此打开一个新问题。
【解决方案2】:

虽然您已经接受了答案,但我想添加另一种比前一种更简单的技术。您可以使用&lt;?= 执行回显,例如&lt;?php echo something; ?&gt;,因此您可以简单地执行此操作&lt;?= something ?&gt;

<?php
    $i=0;
    foreach ($timespent_stats as $course) { 
    $course = (object)$course;
    $color_val = 'green';

    if(count($i<count($timespent_stats)))
        {
        $color_val = $colors[$i++];
?>
        [<?= $course->title ?>, <?= $course->spent_seconds/60 ?>, <?= $color_val ?>]
<?php
        }
    }
?>

【讨论】:

    【解决方案3】:

    如果有人再次遇到此问题,请检查 config/config.php 中的 base_url 是否正确

    【讨论】:

      猜你喜欢
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多