3 回答
TA贡献1871条经验 获得超8个赞
您可以像这样使用查询字符串重定向:
header('Location:klient_usuwanie.php?msg='.urlencode($msg).'&deleted=true');
在 中klient_usuwanie.php,解析查询参数并使用 javascript 显示警报,如下所示:
window.onload = function() {
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get("deleted") === "true") {
alert("Record deleted");
}
}
TA贡献1725条经验 获得超7个赞
添加 header('Location:klient_usuwanie.php?msg='.urlencode($msg).'');
header('Location:klient_usuwanie.php?msg='.urlencode($msg).'&skasowane=tak');
在 klient_usuwanie.php 中添加如下内容:
if($_GET['skasowane']=="tak"){echo "<script>alert(\"I am an alert box!\");</script>";}
TA贡献1827条经验 获得超8个赞
对现代方法的建议:
免责声明:这个答案比确切的要求更符合意图。为什么?为这种请求重新加载整个页面是一种过时的做法。
如今,您更可能依赖 AJAX 调用来处理此类场景。删除端点将接收带有 ID 的请求并响应正确的 HTTP 代码以指示操作是否成功。
Restful HTTP 端点当然可以用 PHP 编写,以响应数据而不是 HTML。
查看带有良好端点示例的 Swagger:https ://editor.swagger.io
在您的前端,您可以实施必要的 JavaScript 代码来执行 AJAX 请求并根据需要操作 DOM。
尽管许多人会使用像 Angular 或 React 这样的框架来标准化这个工作流程。
用户体验
这种方法对用户来说要好得多,因为浏览器不需要再次重新加载整个页面。因为它只触发一个微小的 HTTP 请求,所以速度更快,滚动位置也不会跳来跳去。
我已经用 jQuery 在 JS-Fiddle 上举了一个 HTML 的例子来简化 AJAX 调用: https ://jsfiddle.net/sny9hw73/3/
例子:
<div id="entry-<?=$id;?>" class="banner-message">
<p>My Entry with real request</p>
<button onClick="delete(<?=$id;?>);">Delete Entry</button>
</div>
<script>
function delete(id) {
$.ajax({
url: '/entry.php,
data: { 'entryId': id },
type: 'DELETE',
success: function(result) {
$('#entry-' + id).remove();
},
fail: alert('Delete Record No: ' + id + ' failed')
}
</script>
注意:警报也不总是很好。虽然简单,但它们会停止代码执行并且在某些情况下呈现效果不佳。即:在网络视图中或在移动设备上。它们还会导致全屏退出。
更专业的方法是在 DOM 中播放通知。从这个意义上说,Angular Material 的 Snackbar 更简洁。
添加回答
举报