Javascript 防止在发出警告后重新加载网站
在网页上有一个包含几行的表。每行中都有一个按钮,用于触发Javascript函数: PHP/HTML:Javascript 防止在发出警告后重新加载网站,javascript,php,alert,sweetalert2,Javascript,Php,Alert,Sweetalert2,在网页上有一个包含几行的表。每行中都有一个按钮,用于触发Javascript函数: PHP/HTML: echo "<form action='' method='post'>"; echo "<button type='submit' name='test' value=".$row[4]." class='attest btn btn-info btn-round btn-icon btn-icon-mini btn-neutral' data-original-title
echo "<form action='' method='post'>";
echo "<button type='submit' name='test' value=".$row[4]." class='attest btn btn-info btn-round btn-icon btn-icon-mini btn-neutral' data-original-title='Test'><i class='now-ui-icons files_single-copy-04'></i></button>";
echo "</form>";
echo”“;
回声“;
回声“;
PHP:
if(isset($\u POST['test']))
{
$file=“/files/”$\u POST['test']..jpg”;
$caption=“Image:”..$\u POST['test'];
如果(文件\u存在($\u服务器['DOCUMENT\u ROOT'].$file))
{
回声“;
}
其他的
{
回声“;
}
}
JS:
函数showtest()
{
游泳({
标题:“图像”,
正文:,
imageUrl:,
图像宽度:400,
imageAlt:'图像',
})
}
函数noattest()
{
游泳({
标题:“图像”,
文字:“没有图像。”,
图标:“警告”,
})
}
然后使用Sweetalert2显示一个对话框。问题是表中包含的记录太多,因此必须滚动网页。因此,警报显示正确,但网页“再次向上滚动”/重新加载。这很烦人,因为您必须再次在表中搜索正确的行
是否有解决方案使网页不会跳转到顶部?您的网站会刷新,因为您使用的是必须提交才能将数据发送到后端的html表单。正是因为这个原因,人们通常不再这样做了。您需要使用
ajax
或类似的工具来使用javascript发送数据。在提交表单之前将滚动位置保存到localStorage,然后在页面首次加载时将其滚动到保存的位置。
if(isset($_POST['test']))
{
$file="/files/".$_POST['test'].".jpg";
$caption="Image: ".$_POST['test'];
if (file_exists($_SERVER['DOCUMENT_ROOT'].$file))
{
echo"<body onload='showtest()'>";
}
else
{
echo"<body onload='notest()'>";
}
}
function showtest()
{
swal({
title: 'Image',
text: <?php echo json_encode($caption); ?>,
imageUrl: <?php echo json_encode($file); ?>,
imageWidth: 400,
imageAlt: 'Image',
})
}
function noattest()
{
swal({
title: 'Image',
text: "There is no image.",
icon: 'warning',
})
}