按下警告按钮后重定向到页面/ URL

时间:2013-11-06 23:47:29

标签: javascript php

我已经提到了这两个问题call php page under Javascript functionGo to URL after OK button in alert is pressed。我想在调用警告框后重定向到我的index.php。我的警报框在我的其他声明中。下面是我的代码:

processor.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。希望你能帮助我。请不要标记重复,因为我已将帖子作为参考。非常感谢你的帮助。

6 个答案:

答案 0 :(得分:18)

你的javascript线后丢失了分号。另外,window.location应该有.href.replace等来重定向 - See this post for more information.

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不会在第一个示例中断行,但在第二个示例中,所以分号第一个例子中要求的。

答案 1 :(得分:2)

if (window.confirm('Really go to another page?'))
{
    alert('message');
    window.location = '/some/url';
}
else
{
    die();
}

答案 2 :(得分: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

答案 3 :(得分:2)

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)将所有内容转储到浏览器内存中并为更多内容做好准备(以比以前更好的方式)和WOW - 这一切都有效,因为JS解码器可以看到每个命令都是一个新行。

祝你好运!

答案 4 :(得分:-1)

php中的工作示例 第一次警报然后重定向工作....
享受...

echo "<script>";
echo " alert('Import has successfully Done.');      
        window.location.href='".site_url('home')."';
      </script>";

答案 5 :(得分:-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页面。