PHP包含函数和AJAX div加载
作者:互联网
我有一个PHP生成的网页,其中包含几个最初使用php include创建的div.
<div id ="siteLeft" class ="site">
<div id="divGauges"><?php include('gauges.php');?></div>
<div id="divHistory"><?php include('history.php');?></div>
</div>
<div id="siteRight" class ="site">
<div id="divLymGauges"><?php include('gaugesLym.php');?></div>
<div id="divLymHistory"><?php include('historyLym.php');?></div>
</div>
然后,使用单独的scripts.js文件中的AJAX调用,每10秒重新加载这些div:
function updateHistory(){
$('#divHistory').load('history.php'+"?ms=" + new Date().getTime());
$('#divLymHistory').load('historyLym.php'+"?ms=" + new Date().getTime());
}
setInterval( "updateHistory()", 10000 );
在history.php和historyLym.php中,我有一个函数调用,该函数位于另一个名为functions.php的文件中.
如果我做:
include ('functions/functions.php');
在index.php页面中,然后在初始加载时div的显示效果很好,但是我得到了
Fatal error: Call to undefined function
在AJAX调用之后,网页上显示的内容会使用history.php和historyLym.php刷新div(显然,因为函数文件的include不在div中,这是唯一被调用的位).
因此,我尝试将functions.php包含项放入已加载的div中.如果我这样做,那么在初始页面加载时,我得到:
Fatal error: Cannot redeclare getForce()
这也很有意义,因为在初始加载时,两个div都包含functions.php的include.
仅将include放到一个div中会导致页面加载正常(应该这样做),但是在div的AJAX刷新上,我收到此错误:
Fatal error: Call to undefined function getForce()
这又很有意义,因为两个div由AJAX独立刷新,因此只有具有include.functions.php的div才能使用该函数.
所以我的问题是:
我可以在哪里放置functions.php的include,以便div可以在初始页面加载时以及在单独的AJAX刷新时使用functions.php函数?
解决方法:
首先将函数文件包含在index.php中,
然后将其添加到包含文件的顶部(例如:gauges.php,history.php等.)
<?php
if ( !function_exists( "getForce" ) ) {
// include the function file
}
?>
您可以用函数文件中定义的任何其他函数名称替换getForce
标签:fatal-error,ajax,html,javascript,php 来源: https://codeday.me/bug/20191030/1969421.html