用户上传个人资料图片后,如何自动刷新页面? 一旦用户刷新页面,图片就会更新,但我想强制自己刷新页面。
我正在上传文件并更新我的数据库:
$query="UPDATE users set image='".$username_db."_n.gif' where user_name='$username_db'";
mysqli_query($con,$query);
在此之后,我想要一个刷新代码。
我尝试了几种方法:
echo "<script type='text/javascript'>$('.display_picture_image').attr('src', '".$src."?".time()."');<scipt>";
exit;
其中 .display_picture_image 是我想要显示图片的图片标记。
echo "<meta http-equiv='refresh' content='0'>"
exit;
然后
header("Refresh:0");
exit();
然后
header("Location:".$_SERVER[REQUEST_URI]);
exit();
然后
header("Location:page_name.php");
exit();
然后
echo "<script type='text/javascript'>location.reload();</script>";
但没有任何效果。我做错了什么?
我有一个页面:index.php。它包含自我引用形式的表单。
if(isset($_POST['submit'])
include 'upload.php';
提交照片后,来自
的代码upload.php
已执行。然后上传图片,然后
echo '<script type="text/javascript">$(window).on("load",function(){window.top.window.showcrop("'.$target_file.'","'.$username_db.'","'.$imageFileType.'");});</script>';
在标题中链接的js文件中调用函数showcrop。。
然后在选择并提交裁剪区域后执行此操作:
function crop_photo() {
var x_ = $('#x').val();
var y_ = $('#y').val();
var w_ = $('#w').val();
var h_ = $('#h').val();
var photo_url_ = $('#photo_url').val();
var username_ = $('#username').val();
var fileTypeImage_ = $('#imageFileType').val();
// hide thecrop popup
$('#popup_crop').hide();
// display the loading texte
// crop photo with a php file using ajax call
$.ajax({
url: 'crop_photo.php',
type: 'POST',
data: {x:x_, y:y_, w:w_, h:h_, photo_url:photo_url_, username:username_, fileTypeImage:fileTypeImage_, targ_w:TARGET_W, targ_h:TARGET_H},
success:function(data){
// display the croped photo
}
});
}
// updateCoords : updates hidden input values after every crop selection
function updateCoords(c) {
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
}
然后执行crop.php,上传裁剪的图片并更新数据库。最后,刷新代码被写入但不起作用。
答案 0 :(得分:2)
服务器端:
注意:上传文件并更新数据库后放入以下代码:
header("Refresh: 300;url='REDIRECTION URI'");
浏览器将在300秒后重定向。虽然可以在浏览器的配置中禁用它,但它通常不会被禁用。
客户端:
location.reload();
答案 1 :(得分:0)
好的,所以我自己想出了答案。在我的 crop_photo.php 文件中,
$.ajax({
url: 'crop_photo.php',
type: 'POST',
data: {x:x_, y:y_, w:w_, h:h_, photo_url:photo_url_, username:username_, fileTypeImage:fileTypeImage_, targ_w:TARGET_W, targ_h:TARGET_H},
success:function(data){
// display the croped photo
}
});
在上面的代码中,我在
中没有提到任何内容success:function(data){
//display the cropped photo
}
虽然这就是php会回应的东西。 所以我把它编辑为,
success:function(data){
//display the cropped photo
$('#image_div').html(data);
}
通过这个我在php中回应的内容被放入id image_div 的部门中。 然后我回应了
echo '<script>window.location='redirectbackurl.php'</script>';
并重定向到 redirectbackurl.php ,重定向回上一个链接。 我的 redirectbackurl.php
的代码<?php
header("Location:".$_SERVER['HTTP_REFERER']);
exit();
?>
现在我明白了,我可以简单地使用 location.reload(),但由于表单重新提交问题,我这样做了。