2017-08-17 62 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

如何解決?謝謝提前

相關問題