如何用jquery加载图片?

时间:2009-05-05 09:47:14

标签: php javascript jquery ajax image

我目前正在开发一个用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" />

4 个答案:

答案 0 :(得分:3)

Http POST请求并不意味着返回资源。你为什么不使用GET请求? “REST”方法是使用POST请求创建映像,然后使用GET请求加载它。您需要为资源定义URL映射。

答案 1 :(得分:2)

没有人!在我看来,你基本上有3个选项。

方法1 - 内嵌图像

做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可能会有点大。

方法2 - 保存图像

您可以$.post之前的数据,然后保存图片,并返回图片的网址。

方法3 - 使用GET

修改图片生成脚本以接受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.

这样,您可以实现所需的输出(图形加载取决于表单输出),只需单击一下即可生成该输出。