Я использую круговую диаграмму CF для одного из моих приложений. Но он работает странно. Следующий код - это код диаграммы, и он дает ошибку. Он даже не отображает диаграмму. Я знаю, что это связано с наличием двойных кавычек в столбце запроса, col1
.Наличие одиночных или двойных кавычек в SERIESLABEL или ITEMLABEL, дающих ошибку в CFCHART
<cfoutput>
<script type="text/javascript">
function Navigate(test){
alert(test);
}
</script>
<cfset testquery = queryNew("col1,Col2", "varchar,varchar") >
<cfset queryAddRow(testquery, 1)>
<cfset querySetCell(testquery, "col1", 'This is the "first" row') >
<cfset querySetCell(testquery, "Col2", 5000) >
<cfset queryAddRow(testquery, 1)>
<cfset querySetCell(testquery, "col1", 'This is the second row') >
<cfset querySetCell(testquery, "Col2", 2500) >
<cfset queryAddRow(testquery, 1)>
<cfset querySetCell(testquery, "col1", 'This is the third row') >
<cfset querySetCell(testquery, "Col2", 8500) >
<CFCHART Format="Html" CHARTWIDTH="600" CHARTHEIGHT="650" TITLE="Pie Chart in CF11" URL="javascript:Navigate('$SERIESLABEL$')">
<CFCHARTSERIES TYPE="pie" COLORLIST="##CA5940,##6FCF42,##4286CF" >
<CFLOOP FROM="1" TO="#testquery.RecordCount#" INDEx="i">
<CFCHARTDATA ITEM="#testquery.col1[i]#" VALUE="#testquery.Col2[i]#">
</CFLOOP>
</CFCHARTSERIES>
</CFCHART>
</cfoutput>
Я проверил JSON Картографическая в ViewSource, это прекрасно. Но код дает ошибку выше. Поэтому не уверен, почему он дает ошибку. Без двойных кавычек код работает так, как ожидалось, но мне нужны двойные кавычки, это повлияет на приложение, если я удалю его.
Я также попытался заменить двойные кавычки на одинарные кавычки, в этом случае диаграмма отображает, но если мы нажмем на первую строку, она даст ту же ошибку в консоли.
Таким образом, использование цитат является основной проблемой здесь. Но мне нужен приведенный выше код, чтобы отобразить диаграмму, и, щелкая по области, он должен показать соответствующую метку, как есть.
Я не уверен, что что-то пропустил, или что-то не так в коде.
Да, я пробовал, но не повезло. FYI: Я использую cf11. –
Это сработало, когда я попробовал его на trycf.com, используя ваш образец. Я добавлю суть к ответу. –
Не проще ли использовать JSStringFormat() вместо ручного экранирования строк? –