如何在php页面中执行javascript

如何在php页面中执行javascript,javascript,php,jquery,redirect,pdo,Javascript,Php,Jquery,Redirect,Pdo,我有一个php页面,确认电子邮件帐户进行验证 我想做的是,当页面重定向时,我想清除所有本地存储并触发javascript中的单击事件 我的问题是php文件中的脚本无法执行 我在我的verify.php中的全部php代码 <?php include_once('database.php'); $db = new Connection(); $db = $db->dbConnect(); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES,

我有一个php页面,确认电子邮件帐户进行验证

我想做的是,当页面重定向时,我想清除所有本地存储并触发javascript中的单击事件

我的问题是php文件中的脚本无法执行

我在我的verify.php中的全部php代码

<?php

include_once('database.php');

$db = new Connection();
$db = $db->dbConnect();
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    $vemail = $_GET['vemail'];
    $vhash = $_GET['vhash'];

    $search = "SELECT user_email, user_hash, user_active FROM tbl_user WHERE user_email = :vemail AND user_hash = :vhash AND user_active = '0'";

    $verify = $db->prepare($search);
    $verify->bindParam(':vemail', $vemail, PDO::PARAM_STR);
    $verify->bindParam(':vhash', $vhash, PDO::PARAM_STR);
    $verify->execute();
    $match = $verify->rowCount(); 

    if($match > 0){         

        $qup = "UPDATE tbl_user SET user_active='1' WHERE user_email= :vemail AND user_hash = :vhash AND user_active='0'";

        $query = $db->prepare($qup);
        $query->bindParam(':vemail', $vemail, PDO::PARAM_STR);
        $query->bindParam(':vhash', $vhash, PDO::PARAM_STR);
        $query->execute();  

        header('Location: http://pro13.pnp.gov.ph/nup-application'); 

    ?>
        <script>
        $(document).ready(function(){
            localStorage.clear();   
            $(".show-page[data-page=Email_verified]").trigger("click"); 
        });
        </script>
        <?php
        exit;
    }else{

        header('Location: http://pro13.pnp.gov.ph/nup-application'); 

        ?>
        <script>
        $(document).ready(function(){
            localStorage.clear();   
            $(".show-page[data-page=Email_alreadyVerified]").trigger("click");  
        });
        </script>
        <?php
        exit;
    }

?>

当然不会执行,因为您告诉浏览器重定向到其他页面。浏览器不再关心其他任何事情

解决方案:使用javascript重定向,而不是通过标头响应重定向

而不是这个

header('Location: http://pro13.pnp.gov.ph/nup-application'); 

?>
    <script>
    $(document).ready(function(){
        localStorage.clear();   
        $(".show-page[data-page=Email_verified]").trigger("click"); 
    });
    </script>
    <?php
    exit;
header('位置:http://pro13.pnp.gov.ph/nup-application'); 
?>
$(文档).ready(函数(){
localStorage.clear();
$(“.show page[data page=Email_verified]”。触发器(“单击”);
});
$(文档).ready(函数(){
localStorage.clear();
$(“.show page[data page=Email_verified]”。触发器(“单击”);
window.location.href=http://pro13.pnp.gov.ph/nup-application';
});

您必须了解服务器端和客户端。PHP是一个服务器端脚本,在web服务器上执行,执行数据库查询、页面呈现和响应浏览器请求

一旦PHP服务器将其响应发送到浏览器,您就会(通常)得到一个HTML页面,该页面由web浏览器解析。这是客户端。Javascript在客户端运行,这意味着它只能使用页面上已有的内容(当然,AJAX除外)


我在您的PHP脚本中没有看到呈现我认为位于电子邮件字段中的表单的部分。

但是请注意……如果响应中不包含该元素,脚本无论如何都不会工作。上一页已消失,替换为您现在生成的页面。您不能告诉浏览器单击它上面的内容。@我不知道他的页面是什么样子,也不知道它是如何构建的,所以我不能确定是否仍然存在这个元素(因为它是在解析verify.php之前打印的)或者它是否消失了。所以我就把它包括进去了。如果元素消失了,他当然必须移除它。但是如果不知道表单是直接进入verify.php还是先进入另一个脚本,我真的帮不上忙。是的……没有足够的信息来知道元素是否存在。你的答案没有错。:)不过,OP似乎对什么时候运行有点困惑,所以我认为值得一提。请接受答案或添加您自己的答案并接受它。这样做可以避免出现这个问题没有答案的情况@用户3986930
?>
    <script>
    $(document).ready(function(){
        localStorage.clear();   
        $(".show-page[data-page=Email_verified]").trigger("click"); 
        window.location.href = 'http://pro13.pnp.gov.ph/nup-application';
    });
    </script>
    <?php
    exit;