php jquery致命错误:require():需要打开失败

时间:2013-03-16 05:11:00

标签: php jquery ajax class

我想使用基于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 \中打开所需的'Membership / Controllers / Members.php'(include_path ='。; H:\ xampp \ php \ PEAR')失败在第11行包含\ Gateway.php

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

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

有人能指出我对类函数进行jQuery ajax调用的示例吗?或者给出一些指示。


Members.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);                   
            }
        }       
    }); 
}

}

Gateway.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);
?>

2 个答案:

答案 0 :(得分:0)

只需更改

require  'Membership/Controllers/Members.php';

require  $_SERVER['DOCUMENT_ROOT'].'HelloWorld/Membership/Controllers/Members.php';

答案 1 :(得分:0)

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