PHP函数无法调用

时间:2015-01-31 08:26:35

标签: javascript php ajax

我会尝试以简单的方式解释我的问题。我的代码看起来像这些。

网页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()之前致电ajaxjs中的此功能是

$(".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中则没有。

1 个答案:

答案 0 :(得分:1)

我的猜测是,因为你没有在systemView.php页面中引用database.php,所以PHP无法找到D()函数,因此会抛出错误。

A()运行是因为它是从范围内的页面调用(来自CommonFunctions.php),但是当调用B()时 - 作为新请求 - 它不知道该怎么做寻找。