我正在嘗試顯示一個包含工具提示的圖表,該工具提示顯示一個可以包含撇號(單引號)的字符串。使用 php 從數據庫中檢索數據。我要顯示的系列中每個點的數據由 x 值(日期時間)、y 值(數字)、距離和要在工具提示中顯示的名稱(字符串)組成。一切正常,直到從數據庫讀取的名稱包含單引號,例如 Tegg's,此時圖表不顯示。我認為這是因為 JSON_ENCODE 不會轉義單引號字符串中的單引號。我無法在 JSON_ENCODE 之前轉義單引號,因為它會轉義轉義字符。我怎樣才能讓它工作?我的代碼如下:foreach ($this->hcRides as $ride){ $point['x'] = strtotime($ride->event_date) * 1000; $point['y'] = $ride->ranking_points; $point['name'] = "'$ride->event_name'"; $point['distance'] = "'$ride->distance'"; array_push($countingRideData, json_encode($point));}// Strip the double-quotes out of the JSON$countingRideDataString = str_replace('"', "", join($countingRideData, ','));然后我將 $countingRideDataString 回顯為系列中的數據。hcoptions.series.push({ type: 'column', name: 'Counting Rides', data: [<?php echo $countingRideDataString; ?>], color: '#222845', tooltip: { customTooltip: function() { return '<table class="tt-chart-table"><thead><tr><th>' + this.key + '</th></tr></thead><tbody><tr><td>' + this.point.distance + '</td></tr><tr><td><b>' + this.y + '</b> points</td></tr></tbody></table>' } }, zIndex: 2 });
1 回答

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
json_encode()正是您在這里需要的工具,但您似乎正在與它作斗爭,試圖撤消它的工作并用您身邊的手動工作代替它。
正常創建單個數據結構。不要試圖編碼任何東西。例如
// Don't do this:
$point['name'] = "'$ride->event_name'";
// Do this instead:
$point['name'] = $ride->event_name;
// Don't do this:
array_push($countingRideData, json_encode($point));
// Do this instead:
array_push($countingRideData, $point);
// Remove this altogether:
$countingRideDataString = str_replace('"', "", join($countingRideData, ','));
編碼一次,最后:
// Don't do this:
data: [<?php echo $countingRideDataString; ?>],
// Do this instead:
data: <?php echo json_encode(countingRideData); ?>,
- 1 回答
- 0 關注
- 97 瀏覽
添加回答
舉報
0/150
提交
取消