PHP中没有找到类错误

时间:2014-01-24 06:36:30

标签: javascript php html ajax

我是一名新手PHP和MongoDB开发人员。

我创建了一个带有HTML页面的PHP Web项目,其中包含一个' Add'按钮。该页面的名称是awards.html。 awards.html文件包含其对应的JavaScript文件awards.js。单击“添加”按钮时,将在此js文件中执行代码。此代码将AJAX调用发送到名为example.php的项目中的其他位置的PHP类,该类包含在Awards.php文件中执行名为clickFunction()的函数的代码,该函数将一个JSON数组返回到awards.html页面。

我的文件的源代码如下:

Awards.html

<div class = "divbottom">
    <div id="divAddAward">
        <button class="btn" onclick="onrequest();">Add</button>
    </div>
</div>

awards.js

function onrequest() {
    $("#divAddAward").load('branding/dataaccess/example.php'); //The full path of the example.php file in the web root
    alert('Test');
    $.post(
            'branding/dataaccess/example.php'
            ).success(function(resp) {
        json = $.parseJSON(resp);
        alert(json);
    });
}

使用example.php

<?php

foreach (glob("App/branding/data/*.php") as $filename) {
    include $filename;
}

$class = new Awards();
$method =  $class->clickFunction();
echo json_encode($method);

Awards.php

<?php

class Awards extends Mongo_db {

    //put your code here

    public function __construct() {
        parent::__construct();
    }

    public function clickFunction() {
        $array = array(
            'status' => '1'
        );
        return $array;
    }

}

这里的问题是该程序在example.php,Class&#39; Awards&#39;中给我一个错误。尽管添加for循环以包含所有文件,但未找到。 Awards.php文件位于App/branding/data/路径中,example.php位于App/branding/dataaccess/路径中。

任何人都可以告诉我我哪里错了?最早的回复将受到高度赞赏。提前谢谢。

3 个答案:

答案 0 :(得分:0)

将example.php更新为

<?php

foreach (glob('../data/*.{php}', GLOB_BRACE) as $filename) {
    //Echo out each included file to make sure it's included
    echo $filename . '<br />'; 
    include $filename;
}

$class = new Awards();
$method =  $class->clickFunction();
echo json_encode($method);

答案 1 :(得分:0)

我的猜测:正如你所说,example.php位于App / branding / dataaccess /中,所以当你进行循环时,你实际上是在搜索App / branding / dataccess / App / branding / data中的文件不存在,所以不包含任何内容。

试试这个:

foreach (glob("../data/*.php") as $filename) {
    include $filename;
}

答案 2 :(得分:0)

嗯..尝试使用spl_autoload_register();在example.php上一次包含或要求所有文件

spl_autoload_register(function($class){
    require_once '../data/' . $class . '.php';
});