1

我想使用基于 groupId 的数据库创建网格。目前,我所有的东西都在调用同一个查询。我的问题是当我选择一个组并用于jQuery发布到我的Gateway.php文件时。我创建了一个psuedo-MVC设置。我在 Controller、Models 和 Views 中分离了 3 个目录。从这个 php 文件中,我不断收到这些错误消息:

警告:require(Membership/Controllers/Members.php):无法打开流:第 11 行的 H:\xampp\htdocs\HelloWorld\Membership\Includes\Gateway.php 中没有这样的文件或目录

致命错误:require():在 H:\xampp\htdocs\HelloWorld\Membership\Includes\Gateway 中打开所需的 'Membership/Controllers/Members.php' (include_path='.;H:\xampp\php\PEAR') 失败.php 在第 11 行

所以,我尝试了几件事。一,我将调用移至 index.php 并且效果很好。但是从jQuery电话中,它给了我错误。

我创建了另一个带有函数的 php 文件。我从模型和视图中移动了我的代码。我让它返回带有结果的表格的 html。有用。

jQuery有人可以指出一个对类函数进行 ajax 调用的示例吗?或者给点方向。


成员.js

var Members = {
Display: function(groupId) {
    var pData = {
        action: 'GetMembers',
        groupId: groupId 
    };
    $("#crGroups").empty();
    $("#crGroups").append("Getting Members..." );  
    $.ajax({
        url: "Membership/Includes/Gateway.php",  
        type: "POST",        
        data: pData,     
        cache: false,
        success: function (data, status, xhr) {
            try {
                var members = $.parseJSON(data);
                if (members !== undefined) {
                    $("#crGroups").empty();
                    $("#crGroups").append(members.html);       
                } else {
                    $("#crGroups").empty();
                    $("#crGroups").append(data);                   
                } 
            } catch (err){
               $("#crGroups").empty();
               $("#crGroups").append(data + "<br><br>Error description: " + err.message);                   
            }
        }       
    }); 
}

}

网关.php

<?php

$action = $_POST['action'];
$groupId = $_POST['groupId'];

$data = array();

// Gateway for processing
switch($action)  {
    case 'GetMembers' :   
        require  'Membership/Controllers/Members.php';
        $member = new MembersController();
        //include 'Members.php';
        $data["status"] = "success";
        $data["html"] = $member->GetMembers();
        //$data["html"] = getMembers();
        break;
    case 'AddMember' : 
        $page = 'Add Member'; 
        break;
    case 'page3' : 
        $data["status"] = "success"; 
        break;
    case 'page4' : 
        $data["status"] = "success"; 
        break;
    default :
        $data["status"] = "failure";
}

echo json_encode($data);
?>
4

2 回答 2

0

只是改变

require  'Membership/Controllers/Members.php';

require  $_SERVER['DOCUMENT_ROOT'].'HelloWorld/Membership/Controllers/Members.php';
于 2013-03-16T07:40:18.300 回答
0

谢谢两位的建议。有效。我确实把它放在我的其他文件中,但它解决了这个问题。我想我将定义我可以在所有文件中使用的位置,并更改一次。再次感谢。

于 2013-03-17T15:49:46.613 回答