【问题标题】:Using jquery post to get image generated by jpgraph使用jquery post获取jpgraph生成的图片
【发布时间】:2014-02-15 06:51:32
【问题描述】:

我有一个页面,用于显示 jpgraph 生成的图表图像。

此页面包含以下脚本:

jQuery(document).ready(function() {

jQuery.post('wr.php', function(data) {
var newImg = jQuery('<img />');
newImg.attr('src', data);   
jQuery('#placeholder').html(newImg);
});
});

然后 wr.php 包含生成图形的脚本

<?php
//lines to generate chart data

$graph->Add($wp);

$contentType = 'image/png';
$gdImgHandler = $graph->Stroke(_IMG_HANDLER);

ob_start();                        // start buffering
$graph->img->Stream();             // print data to buffer
$image_data = ob_get_contents();   // retrieve buffer contents
ob_end_clean();                    // stop buffer

echo "data:$contentType;base64;" . base64_encode($image_data);
?>

但是我在页面中得到的输出只是一个红色的 X 标记。有什么解决办法吗?

【问题讨论】:

  • chrome开发者工具显示“加载资源失败”

标签: php jquery post jpgraph


【解决方案1】:

&lt;img&gt; 标记的src 属性应该是用于检索图像的 URL,而不是图像本身的实际数据。我完全不明白为什么您需要为此进行 AJAX 调用,只需尝试以下操作:

var newImg = jQuery('<img>', {src: 'wr.php'});
jQuery('#placeholder').empty().append(newImg);

【讨论】:

  • 需要ajax,因为我想将一些数据发送到脚本wr.php,以便根据数据生成图表
  • 如果我想给wr.php发送一些参数怎么办?
  • @mansoondreamz 然后将它们作为 URL 的参数放在 src 标记中,例如:'wr.php?param1=value1&amp;param2=value2'。现在你的jQuery.post() 没有任何数据(参数)。
  • 现在我想看没有任何参数的图像。稍后我想发送一些参数。
  • 您向 URL 添加参数的建议有效。但是 echo 会有很多功能。由于我不想让这里的重要人士感到厌烦,所以我没有提供更多细节。实际上,传递的参数将用于构造 SQL 以从 mysql 数据库中获取数据。如果没有与参数对应的数据,我可以回显一条友好消息而不是空白页。如果我使用您的建议,wr.php 将发送图表图像或空白图表。不会发送其他数据
猜你喜欢
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 2011-03-26
  • 2013-11-25
  • 1970-01-01
  • 2012-02-20
  • 2011-01-03
相关资源
最近更新 更多