Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax和PHP-如何在插入数据后立即触发window.open以弹出新页面_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript Ajax和PHP-如何在插入数据后立即触发window.open以弹出新页面

Javascript Ajax和PHP-如何在插入数据后立即触发window.open以弹出新页面,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我的问题是,新窗口或页面每次都会弹出,而且不停地弹出,就像一个循环 我的页面所做的是,当我插入数据时,它会自动发送到页面,这很好,我有ajax代码,可以在不刷新的情况下自动发送数据。现在,当我添加此窗口时。打开页面会自动加载新页面 当我插入数据时,我的预期输出是什么,这是新页面将加载或弹出的唯一时间。这是我的页面、代码和javascript代码 php这是我获取发送到数据库的数据的地方 剧本 announcement.php 这是我插入数据的地方,以便将其发送到数据库 $stmt1 =

我的问题是,新窗口或页面每次都会弹出,而且不停地弹出,就像一个循环

我的页面所做的是,当我插入数据时,它会自动发送到页面,这很好,我有ajax代码,可以在不刷新的情况下自动发送数据。现在,当我添加此窗口时。打开页面会自动加载新页面

当我插入数据时,我的预期输出是什么,这是新页面将加载或弹出的唯一时间。这是我的页面、代码和javascript代码

php这是我获取发送到数据库的数据的地方

剧本

announcement.php

这是我插入数据的地方,以便将其发送到数据库

    $stmt1 = $pdo->prepare("insert announcement set additional_info=:addInfo");

这段代码没有什么特别之处,只需查询和插入即可。您可以创建一个全局变量,用于分配数据库记录计数。在每次ajax调用中,您都应该从php文件中获得总记录数。您可以交叉检查这些变量。如果全局变量和ajax响应变量相同,则不应弹出窗口,否则应弹出窗口。查看以下代码:

<script>
        var recordCount = 0; 
        function dis()
        {
            var responseRecordCount = 0;
            xmlhttp=new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                responseRecordCount = this.responseText.sqlRecordCount; // sqlRecordCount is dummy variable. You should pass count of database records here
            };
            xmlhttp.open("GET", "select.php",false);
            xmlhttp.send(null);
            if (recordCount != responseRecordCount) {
                document.getElementById("getdata").innerHTML=xmlhttp.responseText;
                window.open("http://localhost/ppa/movies.php", "", "width=1500px,height=1000px");                          
            }
        }

        dis();

        setInterval(function(){
        dis();
        },2000);
    </script>

希望它能帮助您改进代码。

您需要在ajax成功后打开。@DevsiOdedra先生,您能帮我吗?我对ajax不太熟悉。我只是学了一会儿php。谢谢,我刚刚做了这件事,这要感谢一个视频,你再次得到弹出窗口n,因为你每2秒钟调用dis函数的代码是:setIntervalfunction{dis;},2000;。我认为您应该只在插入任何数据时调用dis函数。当前每2秒调用一次ajax将增加服务器上的负载。避免这种情况。@Rohitmital,你能让我帮你处理代码吗?谢谢你为什么需要每2秒打开一页?或者,当您需要打开新页面时,这不是预期状态?让我来帮你
    $stmt1 = $pdo->prepare("insert announcement set additional_info=:addInfo");
<script>
        var recordCount = 0; 
        function dis()
        {
            var responseRecordCount = 0;
            xmlhttp=new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                responseRecordCount = this.responseText.sqlRecordCount; // sqlRecordCount is dummy variable. You should pass count of database records here
            };
            xmlhttp.open("GET", "select.php",false);
            xmlhttp.send(null);
            if (recordCount != responseRecordCount) {
                document.getElementById("getdata").innerHTML=xmlhttp.responseText;
                window.open("http://localhost/ppa/movies.php", "", "width=1500px,height=1000px");                          
            }
        }

        dis();

        setInterval(function(){
        dis();
        },2000);
    </script>