12

我已经提到这两个问题在 Javascript 函数下调用 php 页面,在按下警报中的 OK 按钮后转到 URL。我想在调用警报框后重定向到我的 index.php。我的警报框在我的 else 语句中。下面是我的代码:

处理器.php

    if (!empty($name) && !empty($email) && !empty($office_id) && !empty($title) && !empty($var_title) && !empty($var_story) && !empty($var_task) && !empty($var_power) && !empty($var_solve) && !empty($var_result)) {

    (some imagecreatefromjpeg code here)

    else{
        echo '<script type="text/javascript">'; 
        echo 'alert("review your answer")'; 
        echo 'window.location= "index.php"';
        echo '</script>';   
    }

它没有显示任何东西(没有警报框,也没有重定向)。当我删除这部分echo 'window.location= "index.php"';时,它会显示警报。但仍然没有重定向到 index.php。希望你能帮助我。请不要标记为重复,因为我已将这些帖子作为参考。非常感谢你的帮助。

4

7 回答 7

28

您的 javascript 行后缺少分号。此外,window.location应该有.href.replace等重定向 -有关更多信息,请参阅此帖子。

echo '<script type="text/javascript">'; 
echo 'alert("review your answer");'; 
echo 'window.location.href = "index.php";';
echo '</script>';

为清楚起见,请尝试为此留下 PHP 标记:

?>
<script type="text/javascript">
alert("review your answer");
window.location.href = "index.php";
</script>
<?php

注意:单独的行上的分号是可选的,但鼓励使用 - 但是如下面的评论所示,PHP 不会在第一个示例中换行,但会在第二个示例中换行,因此在第一个示例需要分号。

于 2013-11-06T23:49:10.710 回答
4
if (window.confirm('Really go to another page?'))
{
    alert('message');
    window.location = '/some/url';
}
else
{
    die();
}
于 2013-11-06T23:54:35.133 回答
3

window.location = mypage.href是浏览器转储其内容并开始加载更多内容的直接命令。因此,为了更好地说明,以下是您的 PHP 脚本中发生的情况:

echo '<script type="text/javascript">'; 
echo 'alert("review your answer");'; 
echo 'window.location = "index.php";';
echo '</script>';

1) 准备接受对当前 Javascript 缓存的修改或添加。2) 显示警报 3) 将所有内容转储到浏览器内存中并为更多内容做好准备(尽管是加载新 URL 的较旧方法(并注意行之间没有“\n”(新行)指示符,因此在 JS 解码器中造成一些破坏。

让我建议你以另一种方式这样做。

echo '<script type="text/javascript">\n'; 
echo 'alert("review your answer");\n'; 
echo 'document.location.href = "index.php";\n';
echo '</script>\n';

1) 准备接受对当前 Javascript 缓存的修改或添加。2) 显示警报 3) 将所有内容转储到浏览器内存中,并为更多内容做好准备(以比以前更好的方式) 哇——这一切都有效,因为 JS 解码器可以看到每个命令现在都是一个新行。

祝你好运!

于 2013-11-07T00:04:31.920 回答
2

像这样,即使在页面完成加载之前,这两个句子也会被执行。

这是你的错误,你错过了一个';' 改变:

       echo 'alert("review your answer")'; 
       echo 'window.location= "index.php"';

至:

       echo 'alert("review your answer");';
       echo 'window.location= "index.php";';

然后是一个建议:您确实应该在某些事件之后触发该逻辑。因此,例如:

           document.getElementById("myBtn").onclick=function(){
                 alert("review your answer");
                 window.location= "index.php";
           };

另一个建议,使用jQuery

于 2013-11-06T23:58:10.097 回答
0
        echo '<script type="text/javascript">'; 
        echo 'alert("Country is already exists:");'; 
        echo "document.location.href = 'index.php';";
        echo '</script>';
于 2022-03-04T11:06:39.550 回答
-1

php 中的工作示例。
首先警报然后重定向工作......
享受......

echo "<script>";
echo " alert('Import has successfully Done.');      
        window.location.href='".site_url('home')."';
      </script>";
于 2014-12-05T07:18:38.333 回答
-1
<head>
<script>
    function myFunction() {
        var x;
        var r = confirm("Do you want to clear data?");
        if (r == true) {
            x = "Your Data is Cleared";
            window.location.href = "firstpage.php";
        }
        else {
            x = "You pressed Cancel!";
        }
        document.getElementById("demo").innerHTML = x;
    }
</script>
</head>
<body>
<button onclick="myFunction()">Retest</button>

<p id="demo"></p>
</body>
</html>

这将重定向到新的 php 页面。

于 2017-09-11T06:27:23.087 回答