Có điều gì trong PHP tương đương với cách nhấn nút tải lại trang F5 theo cách thủ công không? Kịch bản php của tôi nằm trong một khung và không phải là tập lệnh gốc nhưng nó cần phải làm mới toàn bộ trang và không chỉ là khung hình.Cửa sổ làm mới PHP? tương đương với tải lại trang F5?
Trả lời
Với PHP, bạn chỉ có thể xử lý nội dung phía máy chủ. Những gì bạn có thể làm là in nội dung này trong khung nội tuyến của mình:
parent.window.location.reload();
PHP không thể buộc khách hàng thực hiện bất kỳ điều gì. Nó không thể làm mới trang, hãy để một mình làm mới cha mẹ của một khung.
EDIT: Tất nhiên, bạn có thể làm cho PHP viết JavaScript, nhưng đây không phải là PHP đang làm, nó thực sự là JavaScript, và nó sẽ thất bại nếu JavaScript bị vô hiệu hóa.
<?php
echo '<script>parent.window.location.reload(true);</script>';
?>
Sử dụng JavaScript cho việc này. Bạn có thể làm:
echo '
<script type="text/javascript">
parent.window.location.reload(true);
</script>
';
Trong PHP và nó sẽ làm mới trang khung của cha mẹ.
đoán bạn có thể lặp thẻ meta để làm làm mới trong chu kỳ bình thường ... như
<meta http-equiv="refresh" content="600" url="your-url-here">
Trên thực tế nó có thể:
Header('Location: '.$_SERVER['PHP_SELF']);
Exit(); //optional
Và nó sẽ lại cùng một trang.
Điều này cần được đánh dấu là đã được phê duyệt vì nó thực hiện chính xác những gì được dự định trong php (không có javascript hoặc chèn vào HTML). –
@Ryuji Điều này KHÔNG giải quyết được câu hỏi gốc. Điều này sẽ khiến tài liệu gốc tải lại như thế nào? –
@MikeBrant vì đó là chính xác những gì nó làm. Nó ra lệnh cho php tải lại cùng một trang. – NewProger
<?php
echo "<script>window.opener.location.reload();</script>";
echo "<script>window.close();</script>";
?>
Nếu bạn có bất kỳ văn bản trước khi một
header('Location: http://www.example.com/youformhere.php');
bạn sẽ có vấn đề, bởi vì đó phải được gửi trước khi bất kỳ văn bản khác được gửi đến trang.
Hãy thử sử dụng mã này để thay thế
Chỉ cần nhớ, mã này sẽ tạo ra và vòng lặp vô hạn, vì vậy có thể bạn sẽ cần phải thực hiện một số thay đổi có điều kiện với nó.
với php bạn có thể sử dụng hai chuyển hướng. Nó hoạt động giống như làm mới trong một số vấn đề.
bạn có thể sử dụng trang redirect.php và đăng url cuối cùng của bạn lên đó bằng phương thức GET (ví dụ). sau đó trong redirect.php bạn có thể thay đổi tiêu đề thành vị trí bạn đã gửi đến bằng phương thức GET.
như thế này: trang của bạn:
<?php
header("location:redirec.php?ref=".$your_url);
?>
redirect.php:
<?php
$ref_url=$_GET["ref"];
header("location:redirec.php?ref=".$ref_url);
?>
mà làm việc cho tôi tốt.
Tất cả bạn cần làm gì để tự làm mới một trang là để cung cấp một trỏ liên kết đến cùng một trang
Như thế này: Làm mới lựa chọn
Thêm sau trong tiêu đề trang làm việc cho tôi:
<?php
if($i_wanna_reload_the_full_page_on_top == "yes")
{
$reloadneeded = "1";
}
else
{
$reloadneeded = "0";
}
if($reloadneeded > 0)
{
?>
<script type="text/javascript">
top.window.location='indexframes.php';
</script>
<?php
}else{}
?>
hoàn hảo !! Đúng thứ tôi cần! Cảm ơn bạn! – user840930
. . . một câu hỏi nữa. Tôi đã làm: echo "
"; tải lại toàn bộ trang mà tôi chỉ cần, nhưng khung trong đó tập lệnh php đang thực hiện đang không được cập nhật. Và tôi dường như không thể gọi một parent.window.location.reload khác hoặc thậm chí là onload = \ "window.location = '$ page' \" tôi có thể làm gì? – user840930không chắc chắn tôi đã nhận nó, nhưng bạn đã kiểm tra khung của bạn src? Kiểm tra xem parent.window có đang tải chính xác không ... – gustavotkg