0

我不知道这是否可能,因为我知道 php 是服务器端,而 javascript 是客户端。

但我正在尝试从if issetphp 页面内部运行此 javascript 代码。

我正在使用这段代码:

 <?php
    if( isset($_POST['submit2'])){
        echo "
            <script type=\"text/javascript\">
                $(document).ready(function(){
    setTimeout(function () {
        doWork();
        window.location.reload();
    }, 2000);

    function doWork() {
        $('#submit').trigger('click');
    }

});
</script>";
     }
  ?>

这个 javascript 应该点击名为 (submit) 的按钮,如果它不在 PHP 回显中,它可以正常工作。我还检查了 if 是否if( isset($_POST['submit2']))真的返回一个值,并且它确实返回了一个值,并且它可以正常工作。

所以,我不知道这里有什么问题>

有人可以帮我解决这个问题吗?

4

1 回答 1

1

我一直发现最好将我的主要 javascript/jquery 代码保留在 head 标记中,并使用 php 检查和设置允许我的脚本运行的变量;使用 php 将 javascript 布尔值回显到我的 JS 块中。这样你就知道 javascript 正在做它本机应该做的事情,而不用担心元素在 DOM 中没有被正确处理。

所以我会这样做(我不知道您希望事情发生的顺序,所以这可能看起来不正常,但原则应该仍然相同):

<?php
if( isset($_POST['submit2'])){
    $varSet = "var set2 = 1;";
} else {
    $varSet = "var set2 = 0;";
}
?>


<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type=\"text/javascript\">
    $(document).ready(function(){

        <?php echo $varSet; ?>

        if(set2 == 1){
            setTimeout(function () {
                doWork();
                window.location.reload();
            }, 2000);

            function doWork() {
                $('#submit').trigger('click');
            }
        }
    });
</script>
</head>
于 2013-09-11T14:29:28.533 回答