更新Flot PHP,AJAX,JSON

我在将一个Flot条形图从Ajax请求更新为返回JSON数据的PHP脚本时遇到了一些麻烦。 / p>

PHP脚本是:</ p>

  $ vars = array(
'result'=&gt;“success”,
'msg '=&gt; AJAX_SUCCESS,
'系列'=&gt;“第一组,80,第二组,10”
);
echo json_encode($ vars);
</ code> </ pre>
\ n

返回变量'series'</ p>

  var data = [series.series]; 
</ code> </ pre>

输出到控制台:</ p>

  Group One,80,Group Two,10 
</ code> </ pre>

I 还有一个注释掉的变量:</ p>

  // var datatwo = [[“Group One”,80],[“Group Two”,10]]; 
</ code> </ pre>

这也输出到控制台</ p>

  Group One,80,Group Two,10 
</ code> </ pre>

创建图表的实际javascript是</ p>

  $ .plot(“#group-month-graph”,[data], 选项); 
</ code> </ pre>

选项在另一个分配 脚本的位置。</ p>

我试图弄清楚我做错了什么,因为当我提醒返回的数据或将其输出到控制台时,值是相同的,但返回的数据不会绘制 图表,如果我使用它注释掉的值。</ p>

希望这是有意义的。 我已经删除了完整的脚本,因为我不认为问题出在其他任何地方。</ p>
</ div>

展开原文

原文

I am having some trouble updating a Flot bar chart from an Ajax request to a PHP script that returns JSON data.

The PHP script is:

$vars = array(
    'result' => "success",
    'msg' => AJAX_SUCCESS,
    'series' => "Group One,80,Group Two,10" 
    );
echo json_encode($vars);

This is returned to a variable 'series'

var data = [series.series];

This outputs to the console:

Group One,80,Group Two,10

I also have a commented out variable which is:

//var datatwo = [ ["Group One", 80], ["Group Two", 10] ];

This also outputs to the console

Group One,80,Group Two,10

The actual javascript to create the graph is

$.plot("#group-month-graph", [data], options);

The options are assigned at another location of the script.

Im trying to figure out what Im doing wrong as when I alert the returned data or output it to the console the values are identical, however the returned data will not draw the graph whereas if I use the commented out value it does.

Hope that makes sense. I have cut down the full script as I dont think that the issue lies anywhere else.

dongshilve4392
dongshilve4392 'series'=>array(array(“GroupOne”,80),array(“GroupTwo”,10))输出LOG:GroupOne,80,GroupTwo,10,与注释值相同
7 年多之前 回复
doulao5916
doulao5916 死锁你知道数组的PHP格式吗?我正在尝试'series'=>array(array(“GroupOne”,80),array(“GroupTwo”,10))但这似乎不对
7 年多之前 回复
dqv84329
dqv84329 注释掉的值将LOG:GroupOne,80,GroupTwo,75输出到控制台。如果我发送'series'=>“[GroupOne,80],[GroupTwo,10]”,则输出LOG:[“GroupOne”,80],[“GroupTwo”,10]
7 年多之前 回复
drnrxv9383
drnrxv9383 当插件期待一个数组时,你返回一个字符串。你应该返回[[“GroupOne”,80],[“GroupTwo”,10]]
7 年多之前 回复
dqmhgz5848
dqmhgz5848 此脚本用于flot的“类别”模式,它使用格式数据:[[“Label”,10],[“Label”,20]]。我试图将我的数据恢复为:'series'=>“[GroupOne,80],[GroupTwo,10]”无效。
7 年多之前 回复
dongyingdao8867
dongyingdao8867 您的数据格式似乎不正确。检查github.com/flot/flot/blob/master/API.md
7 年多之前 回复

1个回答



当插件期待一个数组时,你返回一个String。 你应该返回 [[“Group One”,80],[“Group Two”,10]] </ code> </ p>

将你的php系列结构更改为:</ p >

  $ vars = array(
'result'=&gt;“success”,
'msg'=&gt; AJAX_SUCCESS,
'series'=&gt; array(array( “Group One”,80),array(“Group Two”,10))
);
</ code> </ pre>

另外,你应该得到系列 </ code>数组使用 data </ code>而非 [data] </ code> </ p>

  $。plot(“#group-month- 图形“,数据,选项”; 
</ code> </ pre>
</ div>

展开原文

原文

You are returning a String while the plugin is expecting an Array. You should return [["Group One",80],["Group Two",10]]

Change your php series structure to:

$vars = array(
    'result' => "success",
    'msg' => AJAX_SUCCESS,
    'series' => array(array("Group One",80),array("Group Two",10))
);

Also, you should be getting the series array using data and not [data]

$.plot("#group-month-graph", data, options);

dongshuo6185
dongshuo6185 谢了哥们。 默认脚本在$ .plot中有[data](“#group-month-graph”,data,options); 它使用注释掉的值输出正确的数据,但是使用您发布的代码适用于JSON数据。 这对我来说没问题。 干杯。
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问