为什么我的确认“警报”在我的代码上不起作用?

问题描述 投票:0回答:1

这是Web应用程序的页面,工作很简单:我可以看到“ alert”询问我是否要确认。根据答案,我转到其他页面。如果我发送了“ if”提示,则会显示该提示。这是代码请帮助我

<?php
session_start();
include('../Model/gestoreAccessi.php');
include('connect.php');
?>
<script> 
let result = confirm("Sei sicuro di voler procedere?");
</script>
<script>
if(!result)
    result = <?php header('Location: http://www.teamjg.altervista.org/Matteo/navbar.php');?>
else
    <?php
    session_start();
    session_unset();
    session_destroy();
    header('Location: http://www.teamjg.altervista.org/Matteo/index.html');
    ?>
</script>
javascript php implementation
1个回答
0
投票

所以,在我回答你的问题之前,只是一个笔记。 PHP和Js将在不同的机器上运行(即使您正在本地主机上对其进行测试,仍然将它们视为不同的机器)

[所有PHP代码都会运行,并在后端执行任何操作,然后再将任何内容发送到您的浏览器,然后再执行js代码。 PHP不了解JS语法,它将仅查看<??>标记并执行其中的所有内容。

<?php
session_start();
include('../Model/gestoreAccessi.php');
include('connect.php');
?>
<script> 
let result = confirm("Sei sicuro di voler procedere?");
</script>
<script>
if(!result)
    result = <?php header('Location: http://www.teamjg.altervista.org/Matteo/navbar.php');?>
else
    <?php
    session_start();
    session_unset();
    session_destroy();
    header('Location: http://www.teamjg.altervista.org/Matteo/index.html');
    ?>
</script>

[当此代码由XAMPP(或您使用的任何引擎)发送时,将首先执行PHP,这会使代码看起来像这样:

// Session will be started
// contents of ../Model/gestoreAccessi.php will be copied and run
// contents of connnect.php will be copied and run
<script> 
let result = confirm("Sei sicuro di voler procedere?");
</script>
<script>
if(!result)
    result = //The header is already set
else
    // Location is already set
</script>

所以这是未定义的行为,因为您要发送两个具有不同位置的标头标签,我最好的猜测是它将重定向到http://www.teamjg.altervista.org/Matteo/index.html

如果您想将用户重定向到其他网站,则可以设置window.location.href作为修补程序。阅读this

© www.soinside.com 2019 - 2024. All rights reserved.