我正在开发一个应用程序,该应用程序将光栅/图像地图(png,tif)提取并显示为传单地图。然而,我不喜欢提交表单时刷新的页面和地图。
此外,我希望地图只刷新图像层。使用正常的方式,它充满了引用。所以我设法让这个代码正常工作。
$('#forms').on('submit',function(e) {
$.ajax({
url:'fun.php',
data:$('#forms').serialize(),
type:'GET',
success:function(result){
$('#downloads').html(result);
}
});
e.preventDefault();
});
还有这里的传单图像层。
raster = L.imageOverlay('<?php echo $datafile;?>', [[33.00, 31.00], [43.50, 35.00]]);
因此,确切的问题是,$datafile无法在传单光栅层上得到响应,我想在提交后重置表单值。我试图在图像层上使用传单方法中的setUrl,但它不起作用。
谢谢你的帮助!
问题解决了。首先,我将echo $datafile
更改为echo '<script type="text/javascript">imageUrl = "'. $datafile. '"; </script>';
这个js变量在html输出页面中得到了响应。然后,可以调用js变量imageUrl。
图像显示出现了另一个问题。当找不到文件时,我使用display:none
隐藏图像层div。这导致图像无法显示。因此,在jquery成功函数中,我必须添加$("img.leaflet-image-layer.leaflet-zoom-animated").show();
然后一个朋友帮我添加了一个使用传单的setUrl()
函数的函数,用于异步更改imageUrl。