3

我有一个名为的 php 文件bargraph.php,它正在创建一个条形图图像。我正在使用以下文件导入bargraph.php单独的文件graph.php

<img src='bargraph1.php'> 

但我需要使用会话变量创建条形图。我需要传递变量年份的值以在 bargraph.php 中生成图像。但它不显示图表。我什至尝试过使用ajax。它没有发生。

图.php

<script>
    alert(<?php echo $year ?>);
    var ids = $year;

    if (ids == "") { 
        document.getElementById("graph").innerHTML="";
        return;
    } 
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    var data = "year=" + ids ;
    //var year ="year=" +id1;
    xmlhttp.open("POST", "bargraph1.php", true); 
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                  
    xmlhttp.send(data);

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("graph").innerHTML=xmlhttp.responseText;
        }
    }
</script>

bargraph1.php

我正在使用以下代码:

$year   = $_POST['year'];
$sql    = "SELECT dt,dist,cal FROM   demo where YEAR(dt)='$year'"; 
$result = mysql_query($sql,$con);
4

1 回答 1

0

由于 AJAX 请求的默认响应是纯文本,我不确定您是否可以显示图像:document.getElementById("graph").innerHTML=xmlhttp.responseText;

我建议另一种解决方案将图像写入磁盘并从 JS 检索图像:在您的bargraph1.php

$img = /* Image creation*/
$filename = "images/generatedFilename.png";
imagepng($img, $filename);
echo $filename;

在尝试从 JS 使用它之前,您可以独立测试您的 PHP 代码以确保它可以正常工作。

在您的 ajax 请求中

  if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            var img = new Image();
            img.src = xmlhttp.responseText;
           document.getElementById("graph").appendChild(img);
        }

编辑:检索年份的部分在 JS 中无效。

alert(<?php echo $year ?>);
var ids = <?php echo $year; ?>;
于 2013-05-17T07:24:13.390 回答