我会尝试以简单的方式解释我的问题。我的代码看起来像这些。
网页systemView.php具有以下代码
<?php require_once 'Common_Function.php'; ?>
<head>
<script src="jF.js"></script>
</head>
<html>
<div id="one"> <?php A(); ?> </div>
<div id="two"> </div>
</html>
Common_Function.php是
<?php
include 'systemView_Function.php';
include 'database.php';
?>
systemView.php有A()
以及B()
<?php
function A() {
D(); // a function in database.php
//and show a few button on the page
}
function B($number) {
D(); // a function in database.php
//some codes to show something in the page
}
if (isset($_POST['B'])) {
B($_POST['B']);
}
?>
A()
函数会在调用时在页面上显示一些按钮。单击其中一个按钮时。然后,javascript
会在B()
之前致电ajax
。 js
中的此功能是
$(".abutton").click(function(){
$("#two").empty();
var number = parseInt($(this).text());
$.ajax({
url: "./systemView_Function.php",
type: "POST",
data: {"B": number},
dataType: "JSON",
success: function(data) {
$("#two").append(data);
}
});
})
现在问题是当D()
中未包含B()
时,代码会成功运行并在id="two"
div
中显示。但是,如果D()
中包含B()
,则浏览器中的控制台会显示错误,而第二个div中则没有。
答案 0 :(得分:1)
我的猜测是,因为你没有在systemView.php页面中引用database.php,所以PHP无法找到D()函数,因此会抛出错误。
A()运行是因为它是从范围内的页面调用(来自CommonFunctions.php),但是当调用B()时 - 作为新请求 - 它不知道该怎么做寻找。