【问题标题】:Why my confirm "alert" don't work on my code?为什么我的确认“警报”不适用于我的代码?
【发布时间】:2020-09-30 23:16:51
【问题描述】:

这是一个web app的页面,工作很简单:

我可以看到询问我是否要确认的“alert”。根据回答,我转到其他页面。

如果我发送了我的“if”cicle,就会显示“警报”。这是代码

<?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>

【问题讨论】:

  • &lt;?php 标签中的内容在服务器上生成,并根据请求输出到客户端。脚本标签内的内容是javascript。您不能混合使用它来制作同步执行序列。首先发生的是,第一个 php 在 php 标签内绘制内容以呈现页面,然后才执行 javascript。这都是错误的,您尝试做的错误事情太多了,以至于根本很难回答您的问题。我建议您完成一些基本的 html/javascript 和 php 课程,以了解您的页面发生了什么
  • 谢谢你的答案。我还不擅长网络编程,因为我最近才开始(不到一个月),但我仍然需要继续

标签: javascript php implementation


【解决方案1】:

所以,在我回答你的问题之前;只是一个注释。 PHP 和 Js 将在不同的机器上运行(即使你在 localhost 上测试它,仍然将它们视为不同的机器)

所有 PHP 代码都在后端运行,然后在发送到浏览器之前在后端执行,之后执行 js 代码。 PHP 不理解 JS 语法,它只会查看 &lt;??&gt; 标签并执行其中的所有内容。

<?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

【讨论】:

    猜你喜欢
    • 2017-07-21
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多