从jquery ajax调用php函数时出现include语句错误
calling php function from jquery ajax with include statement error
我的include语句有问题。我有几个php文件,它们是在最初加载页面时加载的,然后由jQueryajax调用再次调用。由于ajax调用,我在函数中没有php脚本,但当我从不同的位置调用它们时(ajax调用),我的include语句出现了错误。例如,我的主页包括以下php脚本:
<div id="controlPanelForm">
<?php include "lib/getControlPanel.php"; ?>
</div>
以下是getControlPanel.php文件的前几行:
<?php
include_once("../etc/includes.php");
...do something...
这是ajax调用:
function getControl(teamID)
{ $.ajax({
type: "GET",
data: {teamID: teamID},
url: "./lib/getControlPanel.php",
dataType: "html",
async: true,
success: function(response)
{
$('#controlPanelForm').html(response);
}
});
}
所以问题是,当我从ajax调用中调用php脚本时,我会得到以下错误:
include_once(../etc/includes.php): failed to open stream: No such file or directory in
如果我更改相对路径,主页面的原始include将不起作用。。。
如何解决此问题?
提前感谢!
include_once(../etc/includes.php): failed to open stream: No such file or directory in
此错误表明位于".."的文件/etc/includs.php’不存在。您可以使用getcwd()
查看当前工作目录,以确定相对链接实际指向的位置。
然而,相对路径是一种痛苦。我从不使用它们。我的所有项目都包含一个config.php文件,其中包含配置值:
// paths and urls
define('SITE_PATH', '/var/www/my_website/');
define('SITE_URL', 'http://localhost/my_website/');
现在一切都可以是绝对的。修改您的示例:
<div id="controlPanelForm">
<?php include SITE_PATH . 'lib/getControlPanel.php'; ?>
</div>
getControlPanel.hp:
<?php
include_once(SITE_PATH . 'etc/includes.php');
使用这些定义可以做更多的工作,例如创建加载文件的函数、发送重定向头等。
顺便说一句,在使用ajax调用进行调试之前,请始终使用web浏览器直接访问ajax页面来测试它。通过这种方式,您可以判断问题是php问题还是javascript问题。
您可以通过更正包含文件(includes.php)的路径来修复它。您可以将其引用为bolute或relative,这无关紧要。重要的是它被恰当地引用了。
话虽如此,我更喜欢绝对路径(使用常量来定义直到web/app根的路径)。
要找出正确的路径(无论您想使用相对路径还是绝对路径),请放下
echo phpinfo();
并查看DOCUMENT_ROOT或SCRIPT_FILENAME变量。
- 可以't让我的if语句处理js中的html表单输入
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 自动修复”;语句前缺少分号“;
- 如何在 API 调用后和 if 语句中启用提交按钮
- 是“;x==a||b”;以及“;x==a||x==b”;JavaScript中的等效语句
- 带有多个elseif的Javascript if语句
- 这个条件语句的逻辑有问题
- Sharepoint JScript if语句未执行
- 为什么继续;语句冻结浏览器
- Javascript:If-then语句在函数中不起作用
- SharePoint 2010 Jquery/JSON Rest Multiple OR语句-如何
- for循环中的javascript if语句找不到==
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- jquery if语句返回return wong语句
- AngularJS ng include dons'不起作用
- jade/pug是否可以在include语句中使用变量
- 如果jquery脚本's在另一个php页面的php-include语句中使用
- 如何使用JQuery或AJAX添加php-include语句
- 使用Regex vs include()方法与Switch语句
- 从jquery ajax调用php函数时出现include语句错误