2013-05-03 100 views
4

嗨我已经搜索了网页,但不能得到这个工作。我试图从每10秒调用一次的函数调用文件databaseUpdated.php(放置在与index.php文件相同的文件夹中)。从javascript调用php文件

如果我把在index.php

<script type='text/javascript'>updateboolean();</script>; 

的功能拼命地跑下这样那不是问题,问题是,PHP文件不被读取。

文件databaseUpdated.php

<body> 
<?php 

echo ("<script type='text/javascript'>updateboolean();</script>;"); 

?> 
</body> 

这里是我事先的JavaScript

$(document).ready(function(){ 
     setInterval(function() { 
     $.get("databaseUpdated.php");//Can't get this to work any obvious reason for this (And yes I have jquery working)? 
     return false;    
    }, 10000); 
    }); 



    function updateboolean(){ 
     alert("Database updated"); 
     document.location.reload(true); 
    } 

感谢功能=)

编辑

__________ _______________________________________________________________________________

当我做

警报(数据);在下面的功能我得到的结果作为图像将显示

$(document).ready(function(){ 
      setInterval(function() { 
       $.get('databaseUpdated.php', function(data) { 
       alert('Load was performed.'); 
       alert(data); 
       eval(data); 
      }); 
     }, 5000); 
    }); 

enter image description here

但“的eval(数据)” 似乎并没有工作

+0

你在控制台中看到什么错误?是否有HTTP请求?什么是状态码? – JackPoint 2013-05-03 12:29:27

+0

所以,你必须每10秒载入一次这个php文件,在你的脑海里,应该调用一个Javascript函数?你为什么不每10秒调用一次该函数呢? – MaxArt 2013-05-03 12:32:27

+0

定义“不能得到这个工作” - 首先验证使用您的浏览器对该URL进行了请求(例如chrome网络选项卡) - 并且响应(您忽略 - 这是“好”)是不是http错误。 – AD7six 2013-05-03 12:48:44

回答

3
$.get("databaseUpdated.php"); // This will only return contents of that file The scripts in that file are not executed. To execute them you need to do eval(). So Try This 

$.get('databaseUpdated.php', function(data) { 
     eval(data); 
    }); 

此外,可能是你需要改变你的PHP文件如下:

echo ("updateboolean();"); 
+0

它工作感谢=) – anders 2013-05-03 13:26:57

-3

到位试试这个您的回音

echo "<script>updateboolean();</script>"; 
+2

这完全不是重点。 – MaxArt 2013-05-03 12:31:34

-1

通过这样做$.get("databaseUpdated.php")的,您请求的PHP页面,却忽略了重转动结果。

试试这个:

PHP

echo "updateboolean();"; 

的JavaScript:

$.getScript("databaseUpdated.php"); 
3

这里是AJAX 你的回调函数,这是应该的

$(document).ready(function(){ 
      setInterval(function() { 
       $.get('databaseUpdated.php', function(data) { 
       alert('Load was performed.'); 
      }); 
     }, 10000); 
    }); 
1

试试这个:

$(document).ready(function(){ 
     setInterval(function() { 
      $.get('databaseUpdated.php', function(data) { 
      alert("Database updated"); 
      // or alert(data); //in case you return data from php 
      document.location.reload(true); 
     }); 
    }, 10000); 
});