每3秒调用一次PHP文件

时间:2014-06-13 21:12:36

标签: php jquery html ajax

我想每隔3秒从html文件(使用jQuery)调用php文件。

在以下电话中我错了:

<html lang="en">
    <head>
       <script type="text/javascript">
    jQuery('document').ready(function() {
        setInterval(function() {
            jQuery.ajax({
                url: "index.php",
                type: "POST",
                dataType: "HTML",
                success: function(data) {
                    document.getElementById("mainImage").src = data;
                    },
                });
        }, 3000);
    });
</script>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
         <img id="mainImage">
    </body>
</html>

3 个答案:

答案 0 :(得分:3)

我的代码中没有包含jQuery库的内容。你需要这样做。另外,我没有看到任何设置为每隔3秒调用一次该函数。

添加调用以加载jQuery lib后,

将您的功能包装在此:

setInterval(function() {
jQuery.ajax({            
            url: "index.php", 
        type: "POST",          
        dataType: "HTML", 
            success: function( data ) { 
        jQuery('body').append(data);
            },
            error: function(jqXHR, data ) {        
        alert ('Ajax request Failed.');    
        }
        }); 
  }, 3000); //3 seconds

答案 1 :(得分:1)

您周围似乎没有<script language="javascript" type="text/javascript"></script>个标记,而您的HTML结构似乎已关闭。嘿,你甚至没有加载jQuery所以也加了。还要注意我也将2000(这是2秒)改为3000(这是3秒),因为这是这个问题的标题。所以这是重新设计的样本:

<html lang="en">
    <head>
    <title></title>
    <meta charset="utf-8" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script language="javascript" type="text/javascript">
      jQuery('document').ready(function() {
        setInterval(function() {
          jQuery.ajax({
            url: "index.php",
            type: "POST",
            dataType: "HTML",
            success: function(data) {
                document.getElementById("mainImage").src = data;
                },
            });
        }, 3000);
    </script>
    </head>
    <body>
         <img id="mainImage">
    </body>
</html>

答案 2 :(得分:1)

正如其他人所提到的,请确保jQuery实际包含在您的网页上。我还将您的代码更改为更可靠,因为它只会在第一次调用成功执行3秒后再次调用脚本:

<script>
jQuery('document').ready(function() {
    updateSrc();
});

function updateSrc() {
  jQuery.ajax({
      url: "index.php",
      type: "POST",
      dataType: "HTML",
      success: function(data) {
        document.getElementById("mainImage").src = data;
        // once the ajax call is returned, call the function again after 3 seconds
        setTimeout(updateSrc(), 3000);
      },
  });
}
</script>