【发布时间】:2013-05-01 01:59:39
【问题描述】:
我对 PHP OOP 比较陌生,似乎无法通过控制器调用 PHP 类中的函数。我目前的设置是:
- index.php
- class.Class1.php
- functions.controller.php
- script.js
在index.php 中我包含class.Class1.php,创建一个新的Class 对象并使用它的几个方法来输出一些HTML。我想使用 script.js 中的 js 函数(通过使用链接的 onclick 属性调用)与 functions.controller.php 通信,而 functions.controller.php 又会调用方法在 class.Class1.php 中并将数据返回给 script.js,script.js 将依次在 index.php 上输出 HTML。
问题是我不知道如何使用这些方法来获取该特定对象的数据。当我调用控制器时:
$.ajax({
type: 'GET',
url: 'functions/functions.controller.php',
data: 'r=' + 'h',
success: function(data){
$('.showing').html(data);
}
});
我收到 500 内部服务器错误:
[25-Oct-2011 01:24:06] PHP 警告:include(classes/class.Class1.php) [function.include]:打开失败 流:中没有这样的文件或目录 /Users/Joey/Desktop/root/Test/functions/functions.controller.php on 第 7 行
[25-Oct-2011 01:24:06] PHP 警告:include() [function.include]:打开失败 'classes/class.Class1.php' 用于包含 (include_path='.:/Applications/MAMP/bin/php5.3/lib/php') 在 /Users/Joey/Desktop/root/Test/functions/functions.controller.php on 第 7 行
[2011 年 10 月 25 日 01:24:06] PHP 致命错误:类 'Class1' 不是 在发现 /Users/Joey/Desktop/root/Test/functions/functions.controller.php on 第 9 行
这是controller.php:
include('classes/class.Class1.php');
$in = new Class1;
echo $in->getData();
任何人都可以对此有所了解吗?也欢迎任何其他带有 AJAX 技巧的 PHP OOP MVC。如果需要更多我当前的代码,我很乐意发布。
【问题讨论】:
-
真的需要直接向控制器发出请求吗???它看起来像某种形式的 MVC,您正在尝试实现。您没有类似的 URL:
/my/url,由控制器处理吗? -
您的网络服务器日志中针对 500 响应的错误消息是什么?此外,问题顶部列出的文件名与代码中的引用之间似乎存在一些不一致。你能把它清理干净吗?
-
@PeeHaa MVC 不会自动暗示 URL 重写,所以我不会跳到那个假设
-
我真的不知道我是否需要直接提出请求。就像我之前提到的,我对此很陌生。
-
@Phil 我正在使用 MAMP 在本地运行它,并且正在使用 Chrome 开发人员工具控制台,它只说:错误 500 内部服务器错误。我在哪里可以查看更多内容?
标签: php jquery php-include