我有一个函数,它创建我制作的表单模板的新实例(不使用模板引擎),并根据传递给它的对象用各种数据填充它。加载页面时,我使用此函数为现有对象创建表单,但界面中还有一个按钮,它向单独的脚本发出 ajax 请求,该脚本创建一个新对象,然后调用该函数为该对象创建表单。作为对 ajax 的响应发送的对象。错误是:Warning: DOMDocument::loadHTMLFile(): I/O warning : failed to load external entity "templates/form_edit_event.html" in C:\wamp64\www\<private>\src\<private>\components\component_edit_event.php on line 12它引用的代码:11 $eventDom = new DOMDocument();12 $eventDom->loadHTMLFile('templates/form_edit_event.html');但问题是,当页面首次加载时,我的脚本和 loadHTMLFile 函数可以很好地为已经存在的对象创建表单。仅当我使用该按钮尝试创建新按钮时,才会出现 I/O 错误。其确切文本如下,尽管我掩盖了一些不重要的目录名称:它加载的文件是纯 html,甚至没有页眉/页脚等,只是<form>contents</form>. 我不知道为什么它有时会失败。从ajax调用的整个脚本(减去一些不相关的使用/包含)是这样的,component_edit_event.php上面提到的脚本创建了表单:include_once __DIR__ . '\..\components\component_edit_event.php';$tourneyId = $_POST['tourneyId'];/** @var DimTournament $tourney */$tourney = DimTournament::findById($tourneyId);$newEvent = new DimEvent($tourney);echo createEventForm($newEvent)->saveHTML();我认为我不需要包含任何其他代码,但如果需要的话我绝对可以。
1 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
将相对路径替换$eventDom->loadHTMLFile('templates/form_edit_event.html');
为绝对路径解决了该问题。引发错误的脚本与工作正常的脚本位于不同的目录中。
我将使用某种 $srcRoot 变量创建一个配置文件,以便在路径名中保留一些伪相对论的外观。
- 1 回答
- 0 关注
- 64 浏览
添加回答
举报
0/150
提交
取消