2013-05-03 292 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); 
});