如何动态/ ajax从mysql数据库中的新照片重新加载照片?

时间:2013-02-04 21:09:41

标签: php javascript html mysql ajax

我在页面上嵌入了一个图像,该图像是从保存文件名的mysql数据库中提取的。我想做的是使用javascript来调用让我们说pump.php来引入数据库中的绝对下一个图像 - 有点像幻灯片放映,然后动态地将它写入img src。我很亲密但很难过。任何帮助都是非常感激,我搜索和搜索!这是div /嵌入图像:

<div id="image_holder"><img id=target src=./watch/<? echo $frame; ?> /></div>

然后我有这个javascript,在1000个时钟周期后调用函数kitty。 Kitty应该刷新包含php的pump.php以及ID号(让我们假设它以1开头,第一条记录然后动态地写入新图像名称上方的HTML:

 setInterval("kitty()",1000);

 function kitty(){

 $.get('pump.php?id=<? echo $id; ?>', 
  { lastupdate: 1 }, 
  processUpdate, 'html');
  }, 1000 ) };

 var target_image = document.getElementById("target");
  target_image.src = <? echo $image ?>; 
}

这是pump.php(减去数据库连接信息)它应该拉出ID =脚本当前ID的图像,并将ID递增1,这样我们下次可以从2开始! / p>

$result = mysql_query( "SELECT * FROM frame_database where id=$id " );
$data = mysql_fetch_array($result); 
$image = $data["image"]; 
$id++;

你们觉得怎么样?我是树上的faaaaaaaaaaa?

2 个答案:

答案 0 :(得分:0)

我第一眼看到的第一个问题是你从PHP调用填充图像src。你想要做的是启动对服务器上某个文件的ajax调用(用PHP,Java或服务器支持的其他语言编写)。由于这是一个异步调用,因此必须使用回调函数(在java脚本中)来成功和失败。

成功函数可能会收到一个字符串或一个json对象,它保存图片的uri。然后你必须改变图像src ...我想应该是它。

我建议使用像jQuery这样的框架来简化整个ajax。

答案 1 :(得分:0)

首先关闭pump.php需要将数据返回到脚本,以便脚本可以获取图像名称。

$result = mysql_query( "SELECT * FROM frame_database where id=$id " );
$data = mysql_fetch_array($result); 
$image = $data["image"]; 
$id++;
echo json_encode(array('image'=>$image, 'id'=>id));

然后在kitty()中你可以这样做:

$.get('pump.php?id=<? echo $id; ?>', 
      { lastupdate: 1 }, 
      function(data){
            var res = JSON.parse(data);
            var target_image = document.getElementById("target");
            target_image.src = res.image; 
      }, 'html');

请注意,您可能希望将<? echo $id; ?>部分更改为kitty()中的get调用可以更新的javascript变量。

希望这有帮助。