我是一名新手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/
路径中。
任何人都可以告诉我我哪里错了?最早的回复将受到高度赞赏。提前谢谢。
答案 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';
});