Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止在发出警告后重新加载网站_Javascript_Php_Alert_Sweetalert2 - Fatal编程技术网

Javascript 防止在发出警告后重新加载网站

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

在网页上有一个包含几行的表。每行中都有一个按钮,用于触发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='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',
})
}