我目前正在开发一个用PHP生成图表作为图片的类。我想用jquery动态加载这些图片。我怎样才能做到这一点??我不会有一个真实的图片文件,只是当我用ajax调用它时文件的内容...我不能简单地将php脚本定义为src因为我需要将Post参数传递给图片...
编辑:
好的..我想我必须再解释一下......
这是html代码:
<div>
<img id="image" />
</div>
<input type="button" onclick="loadPicture();" />
按下按钮时,应将一些数据发送到生成图片的php脚本。回调函数或类似的东西现在应该将图片发布到img-元素中。 简单地将图片发布到img标签中是行不通的。以下代码可以使用,但是如何添加POST参数?
<img src="<scriptname>.php" />
答案 0 :(得分:3)
Http POST请求并不意味着返回资源。你为什么不使用GET请求? “REST”方法是使用POST请求创建映像,然后使用GET请求加载它。您需要为资源定义URL映射。
答案 1 :(得分:2)
没有人!在我看来,你基本上有3个选项。
做Brayn所说的,但data
应该是base64 encoding of your image。
$("#div").html(data); // instead of this
$('#image').attr('src','data:image/gif;base64,'+data); // try something like this
但我不喜欢内联图片或传递帖子数据的想法。对于大图像,Base64可能会有点大。
您可以$.post
之前的数据,然后保存图片,并返回图片的网址。
修改图片生成脚本以接受GET
数据。如果您要传递大量数据,请尝试以某种方式压缩它,或者或许您可以使用SESSION
变量。
答案 2 :(得分:1)
我不确定我是否从你所说的内容中得到了正确但你可以使用$ .post()方法,它会通过其回调返回你需要的任何内容。像这样:
$.post("file.php",{param: val},function(data){
$("#div").html(data);
})
如果你能进一步解释,也许我们会更好地理解。希望这会有所帮助。
答案 3 :(得分:0)
是否有实际需要使用AJAX / jQuery?或者你只是简单地把它放进去因为它很酷?
这就是我要做的事情:
if (isset($_POST['createImage'])){
// This means that the button was clicked
// Generate your image, and then display it:
}
// Regardless, you would now show your form
// That way if values were to be changed, the graphic can be recalculated.
这样,您可以实现所需的输出(图形加载取决于表单输出),只需单击一下即可生成该输出。