2017-08-17 63 views
-1

我第一次在Stackoverflow,并对我的坏英语感到抱歉,我要改进。 我想问你,我在我的php中显示图表时遇到了一些麻烦。 这里是错误结果:未捕获的SyntaxError:意外的令牌]在php

Uncaught SyntaxError: Unexpected token ] 
at HTMLDivElement.<anonymous> (plugins.js:112) 
at Function.each (jquery.js:374) 
at jQuery.fn.init.each (jquery.js:139) 
at jQuery.fn.init.$.fn.plugins (plugins.js:109) 
at Object.app.init (app.js:61) 
at app.js:556 
at app.js:560 

这里是Inpect元素在浏览器中的错误结果的误差源 here is

这里是我的代码:

echo "<div class='col-md-12'>"; 
     echo "<div class='widget'>"; 
     echo "<header class='widget-header'>"; 
     echo "<h4 class='widget-title'>Chart Final Association Rule</h4>"; 
     echo "</header>"; 
     echo "<hr class='widget-separator'>"; 
     echo "<div class='widget-body'>"; 
     echo "<div data-plugin='chart' style='height:300px' data-options='{ 
       tooltip : { 
        trigger: 'axis' 
       }, 
       legend: { 
        data:['as'] 
       }, 
       calculable : true, 
        xAxis : [ 
       { 
       type : 'category', 
        data : ['11'] 
       } 
       ], 
       yAxis : [ 
       { 
        type : 'value' 
       } 
       ], 
       series : [ 
       { 
        name:'Sale', 
        type:'bar', 
        data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3], 
        markPoint : { 
        data : [ 
        {type : 'max', name: 'Max'}, 
        {type : 'min', name: 'Min'} 
        ] 
        }, 
        markLine : { 
        data : [ 
         {type : 'average', name: 'Average'} 
        ] 
        } 
        }, 
        { 
        name:'Market', 
        type:'bar', 
        data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3], 
        markPoint : { 
        data : [ 
        {name : 'Max', value : 182.2, xAxis: 7, yAxis: 183, symbolSize:18}, 
        {name : 'Min', value : 2.3, xAxis: 11, yAxis: 3} 
        ] 
        }, 
        markLine : { 
        data : [ 
         {type : 'average', name : 'Average'} 
        ] 
        } 
        } 
       ] 
       }'>"; 
      echo "</div>"; 
      echo "</div>"; 
      echo "</div>"; 
      echo "</div>"; 

我不知道该怎么修复它,有人可以告诉我,请。 最好的方面

+1

这是一个JavaScript错误,而不是PHP。显示JS代码。 – ishegg

+0

与HTML元素内嵌的大型JSON结构看起来像会导致非常无效的HTML。 – David

+0

当我在Html文件中创建我不工作,但在PHP中没有工作 – MiyaAzhila

回答

1

您正在使用单引号(')为您的data-options值,但您也在使用它们作为JSON字符串中的键。您可以通过使用双引号替代该属性值来解决此问题,因为您处于echo字符串中,所以转义(\")。如果这不是主要原因,那至少是一个重大问题。

@Spectarion还将我的注意力引入了一个事实,即类似JSON的字符串不是有效的JSON,因此如果要使用JSON解析器解析它,则可能会遇到问题。 JSON需要双引号,并且必须引用所有密钥。

+0

而且,不带引号的键无效。 – Spectarion

+0

@Spectarion但是再一次,更大的问题是JSON标准根本不允许单引号。 – Neon

+0

你能举个例子吗? 我不明白。 – MiyaAzhila

0

解决方案一:

echo "<div class='col-md-12'>"; 
    echo "<div class='widget'>"; 
     echo "<header class='widget-header'>"; 
      echo "<h4 class='widget-title'>Chart Final Association Rule</h4>"; 
     echo "</header>"; 
     echo "<hr class='widget-separator'>"; 
     echo "<div class='widget-body'>"; 
      echo "<div data-plugin='chart' style='height:300px' data-options='{\"tooltip\":{\"trigger\":\"axis\"},\"legend\":{\"data\":[\"as\"]},\"calculable\":true,\"xAxis\":[{\"type\":\"category\",\"data\":[\"11\"]}],\"yAxis\":[{\"type\":\"value\"}],\"series\":[{\"name\":\"Sale\",\"type\":\"bar\",\"data\":[2,4.9,7,23.2,25.6,76.7,135.6,162.2,32.6,20,6.4,3.3],\"markPoint\":{\"data\":[{\"type\":\"max\",\"name\":\"Max\"},{\"type\":\"min\",\"name\":\"Min\"}]},\"markLine\":{\"data\":[{\"type\":\"average\",\"name\":\"Average\"}]}},{\"name\":\"Market\",\"type\":\"bar\",\"data\":[2.6,5.9,9,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6,2.3],\"markPoint\":{\"data\":[{\"name\":\"Max\",\"value\":182.2,\"xAxis\":7,\"yAxis\":183,\"symbolSize\":18},{\"name\":\"Min\",\"value\":2.3,\"xAxis\":11,\"yAxis\":3}]},\"markLine\":{\"data\":[{\"type\":\"average\",\"name\":\"Average\"}]}}]}'>"; 
      echo "</div>"; 
     echo "</div>"; 
    echo "</div>"; 
echo "</div>"; 

解决方法二:

?> 
    <div class='col-md-12'> 
     <div class='widget'> 
      <header class='widget-header'> 
       <h4 class='widget-title'>Chart Final Association Rule</h4> 
      </header> 
      <hr class='widget-separator'> 
      <div class='widget-body'> 
       <div data-plugin='chart' style='height:300px' data-options='{\"tooltip\":{\"trigger\":\"axis\"},\"legend\":{\"data\":[\"as\"]},\"calculable\":true,\"xAxis\":[{\"type\":\"category\",\"data\":[\"11\"]}],\"yAxis\":[{\"type\":\"value\"}],\"series\":[{\"name\":\"Sale\",\"type\":\"bar\",\"data\":[2,4.9,7,23.2,25.6,76.7,135.6,162.2,32.6,20,6.4,3.3],\"markPoint\":{\"data\":[{\"type\":\"max\",\"name\":\"Max\"},{\"type\":\"min\",\"name\":\"Min\"}]},\"markLine\":{\"data\":[{\"type\":\"average\",\"name\":\"Average\"}]}},{\"name\":\"Market\",\"type\":\"bar\",\"data\":[2.6,5.9,9,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6,2.3],\"markPoint\":{\"data\":[{\"name\":\"Max\",\"value\":182.2,\"xAxis\":7,\"yAxis\":183,\"symbolSize\":18},{\"name\":\"Min\",\"value\":2.3,\"xAxis\":11,\"yAxis\":3}]},\"markLine\":{\"data\":[{\"type\":\"average\",\"name\":\"Average\"}]}}]}'> 
       </div> 
      </div> 
     </div> 
    </div> 
<?php 

问题固定:

  • 关键没有引号的s是无效的。
  • 包装在单引号中的值无效。
+0

谢谢youuu :) 我现在工作.. – MiyaAzhila

0

终于我有我的问题的答案只需添加\"我的代码, 但我有,当我解析数据使用JSON以图表的麻烦。 变量$xa是显示JSON数据["Butter Rice Salmon|Salmon","Chicken Steak|Grilled Chicken Steak","Dory Pesto Rice|Pesto","Green Rice Chicken Salsa|Paket Green Rice Chicken Salsa","Grilled Salmon|Salmon","Hamburg Egg Rice|Paket Hamburg Egg Rice","Ice Tea|Lychee Ice Tea","Ice Tea|Peach Ice Tea","Mango|Mango Peach"]和可变$percent显示JSON数据[100,100,100,100,100,100,100,100,100]这些数据与$xa 这里连接是代码:

echo "<div class='col-md-12'>"; 
echo "<div class='widget'>"; 
    echo "<header class='widget-header'>"; 
     echo "<h4 class='widget-title'>Visualisasi Data Final Association Rule</h4>"; 
    echo "</header>"; 
    echo "<hr class='widget-separator'>"; 
    echo "<div class='widget-body'>"; 
     echo "<div data-plugin='chart' style='height:300px' data-options='{ 
       tooltip : { 
       trigger: \"axis\" 
       }, 
       legend: { 
       data:$xa 
       }, 
       calculable : true, 
       xAxis : [ 
       { 
        type : \"category\", 
        data : $xa 
       } 
       ], 
       yAxis : [ 
       { 
        type : \"value\" 
       } 
       ], 
       series : [ 
       { 
        name:$xa, 
        type:\"bar\", 
        data:$percent, 
        markPoint : { 
        data : [ 
         {type : \"max\", name: \"Max\"}, 
         {type : \"min\", name: \"Min\"} 
        ] 
       }, 
        markLine : { 
        data : [ 
         {type : \"average\", name: \"Average\"} 
        ] 
        } 
       } 
       ] 
      }'>"; 
      echo "</div>"; 
      echo "</div>"; 
      echo "</div>"; 
      echo "</div>"; 

,这是我的代码的结果: result image

如何解决?谢谢提前

相关问题