Php jquery更新div背景元素
好吧,我不知道该怎么办,老实说,我有点迷路了。我试图做的是通过jQuery将一个文件上传到站点,并将其推送到PHP,然后PHP会删除原始图像文件,制作一个名为header.jpg的副本,并将其推送到需要的地方。那部分工作没有问题。这里的问题是,如果header.jpg图像是背景,我将如何更新div元素 注意:无论什么,img都将始终为header.jpg,但它需要由浏览器重新缓存,并在不刷新页面的情况下输出给用户 下面是header div的布局Php jquery更新div背景元素,php,jquery,css,html,background,Php,Jquery,Css,Html,Background,好吧,我不知道该怎么办,老实说,我有点迷路了。我试图做的是通过jQuery将一个文件上传到站点,并将其推送到PHP,然后PHP会删除原始图像文件,制作一个名为header.jpg的副本,并将其推送到需要的地方。那部分工作没有问题。这里的问题是,如果header.jpg图像是背景,我将如何更新div元素 注意:无论什么,img都将始终为header.jpg,但它需要由浏览器重新缓存,并在不刷新页面的情况下输出给用户 下面是header div的布局 <div id="headerEmpty"
<div id="headerEmpty"></div>
<div id="pageName">
<h2><?php echo $pageName; ?></h2>
</div>
<?php if ( $_SESSION['signed_in'] == true ) { ?>
<div id="header" style="background-image:url(uploads/header.jpg);">
<span class="edit" fn="header">
<img src="uploads/icon/16/018.png" />
</span>
<div class="fn_menu" style="display:none;"></div>
</div>
<?php } else { ?>
<div id="header"></div>
<?php } ?>
这里是jquery位,它显示loader并自动启动上传过程
$('#photoimg').live('change', function() {
$("#preview").html('');
$("#preview").html('<img src="uploads/icon/16/ajax-loader.gif" alt="Uploading...."/>');
$("#imageform").ajaxForm(
{
target: '#header',
success : function(data) {
$("#header").html(data).fadeIn('fast');
}
}).submit();
});
$('#photoimg').live('change',function(){
$(“#预览”).html(“”);
$(“#预览”).html(“”);
$(“#imageform”).ajaxForm(
{
目标:“#标题”,
成功:功能(数据){
$(“#header”).html(data.fadeIn('fast');
}
}).submit();
});
如果要更新图像,请更改其来源。您可以将时间戳附加到源,使其不会来自浏览器的缓存。在PHP中,这类似于:
<div id="headerEmpty"></div>
<div id="pageName">
<h2><?php echo $pageName; ?></h2>
</div>
<?php if ( $_SESSION['signed_in'] == true ) { ?>
<div id="header" style="background-image:url(uploads/header.jpg?_=<?php echo time(); ?>);">
<span class="edit" fn="header">
<img src="uploads/icon/16/018.png" />
</span>
<div class="fn_menu" style="display:none;"></div>
</div>
<?php } else { ?>
<div id="header"></div>
<?php } ?>
您还可以使用PHP输出#header
元素,并使用replaceWith()
而不是.html()
:
这假设您的PHP输出现在如下所示:
<div id="header" style="background-image:url(uploads/header.jpg?_=1234567890);">
<span class="edit" fn="header">
<img src="uploads/icon/16/018.png" />
</span>
<div class="fn_menu" style="display:none;"></div>
</div>
我知道使用时间戳、日期和其他任何东西。image uploads/header.jpg不会在页面上更新,它会通过AJAX在服务器上更新,并强制新副本重写原始副本。但是,页面上有0个刷新,导致图像仍然保留在那里,因为没有刷新时间戳是无用的,因为页面没有刷新来更新图像timestamp@Cl“我添加了一些如何将时间戳应用于背景图像的示例。谢谢您的示例,但我仍然无法使其正常工作。比如说,有没有更简单的方法来代替使用div来更新src?
success : function(data) {
$("#header").replaceWith(data).fadeIn('fast');
}
<div id="header" style="background-image:url(uploads/header.jpg?_=1234567890);">
<span class="edit" fn="header">
<img src="uploads/icon/16/018.png" />
</span>
<div class="fn_menu" style="display:none;"></div>
</div>