首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新模式窗口而不关闭它

刷新模式窗口而不关闭它
EN

Stack Overflow用户
提问于 2019-03-21 05:13:41
回答 2查看 4.7K关注 0票数 1

我有100多个目录的图像缩略图。我正在使用PHP检索图像。单击按钮时弹出带有id #imagePalette窗口的引导模式,并显示目录中的所有图像。

中的javascript

代码语言:javascript
复制
$.post('getCroppedImages.php',{'location': location, 'brand':brand},function(data) {
var imagemodal = $('#imagePalette');
imagemodal.find('.modal-title').html('Brand: ' + brand + ' in ' + location);
imagemodal.find('.modal-body').html(data).show();
});

检索图像的PHP代码:

代码语言:javascript
复制
$path = "projects/" . $database . '/' . $match . '/' . $location . '/' . $brandname . '/*.jpg';
$files = glob($path);
for ($i=0; $i<count($files); $i++)
{
    $num = $files[$i];
    $filname = basename($num, ".jpg");
    $imgname = basename($num);
    $img = $path . $imgname;
    $filnam = substr($filname, -9,9);
    $filnam = rtrim($filnam);
    echo '<ul class="croppeditem" id="croppeditem">';
    echo '<li style="list-style:none;cursor:pointer" ><img onclick="clickCroppedImage(this.id); return false"; src="'.$num.'" id="'.$filnam.'"/>';
    echo '<figcaption class="caption" name="caption">' . $filnam . '</figcaption>';
    echo '</li></ul>';

}

上面的代码工作得很好。它会显示图像。我有一个函数clickCroppedImage附加到每个图像。当用户单击模态窗口中的图像时,此函数会触发另一个php,即从文件夹中deletes图像。

此删除也没有任何问题。我试图刷新模态,而不关闭它,以便显示文件夹中的当前图像集。我编写了类似的php和javascript代码,并使用unlink从文件夹中删除图像。

Javascript中的

代码语言:javascript
复制
$.post('deleteAnnCroppedImage.php', {'folder':wd, 'matchLst':matchLst, "imgPath" : clickedImg, 'currentAnnotCheckLocation': currentAnnotCheckLocation, 'currentAnnotCheckBrand': currentAnnotCheckBrand}, function(data){
          //imagemodal.find('.modal-body').html().show();
          var imagemodal = $('#imagePalette');
          imagemodal.find('.modal-body').html("");
          imagemodal.find('.modal-body').html(data).show();

        });

PHP代码

代码语言:javascript
复制
$currentAnnotPath = "projects/" . $database . '/' . $match . '/' . $location . '/' . $brandname . '/*.jpg';
$files = glob($currentAnnotPath);
$imgPath = $_POST['imgPath'];
unlink($imgPath);
//echo "Deleted Image";

for ($i=0; $i<count($files); $i++)
{
    $num = $files[$i];
    $filname = basename($num, ".jpg");
    $imgname = basename($num);
    $img = $currentAnnotPath . $imgname;
    $filnam = substr($filname, -9,9);
    $filnam = rtrim($filnam);
    echo '<ul class="croppeditem" id="croppeditem">';
    echo '<li style="list-style:none;cursor:pointer" ><img onclick="clickCroppedImage(this.id); return false"; src="'.$num.'" id="'.$filnam.'"/>';
    echo '<figcaption class="caption" name="caption">' . $filnam . '</figcaption>';
    echo '</li></ul>';    
}

php脚本正确地返回ul li数据,我可以将其打印到控制台。但是,我无法刷新模态体并显示返回的图像。我尝试了不同的组合,但模态窗口没有显示任何反应。

如何在不关闭模态窗口的情况下清除模态体并重新加载图像?

EN

回答 2

Stack Overflow用户

发布于 2019-03-21 05:43:05

如果我正确理解您的问题,您将不得不使用AJAX。用户删除图像后,必须触发AJAX请求并更改模式的内容。

AJAX的一个很好的介绍可以通过google找到。

诚挚的问候

票数 0
EN

Stack Overflow用户

发布于 2019-03-21 10:07:59

你应该能够到达模态体元素。首先,确保您可以从当前函数范围中看到它。

使用基本引导模式的示例代码:

纯JS:

代码语言:javascript
复制
document.getElementsByClassName('modal-body')[0].innerHTML = '<p>some html</p>';

jQuery:

代码语言:javascript
复制
$('#imagePalette .modal-body:first').html('<p>some html</p>');

如果有一个iFrame,并且模型在里面,那么您应该先从JavaScript进入iFrame文档。

其他:在这些情况下,您可以使用jQuery包装器而不是引入一个新变量。您不会丢失性能,但它将使此代码更具可读性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55274165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档