繁体   English   中英

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

[英]php jquery Fatal error: require(): Failed opening required

我想使用基于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调用的示例吗? 或给出一些方向。


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

只是改变

require  'Membership/Controllers/Members.php';

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

谢谢你们的建议。 有效。 我确实已将其放在其他文件中,但是它解决了问题。 我想我将定义可以在所有文件中使用的位置,并对其进行一次更改。 再次感谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM