使用 PHP 将字符串从变量附加到 HTML 元素


Appending String From Variable To HTML Element Using PHP

我正在尝试将存储在变量中的字符串附加到HTML元素中。我在下面编写了工作正常的函数,但是一旦我添加新帖子,我就会收到"致命错误:未捕获的错误:调用未定义的方法 DOMNodeList::appendChild()"错误消息。

更新

我认为之前给出的信息无关紧要,所以我只需要知道如何将下面的字符串添加到注释位置的 HTML 中。

.PHP

$string = "some text";

.HTML

<div id="wrapper">
    <div>some content</div>
    <div>some content</div>
    <div>some content</div>
    <!--Place where I need to add the string same as it is-->
</div>

您没有发布完整的代码,但我假设您有一个调用 query 方法的DOMXPath

编辑:您确实发布了完整的代码,并且正在使用DOMXPath


此方法返回一个 DOMNodeList ,一个包含 DOMNode s 的列表。

只能在单个DOMNode上调用appendChild,因为该方法未在DOMNodeList上定义。

使用它从DOMNodeList获取第一个DOMNode

$wrapper->item(0)->appendChild($newpost);

这将从列表中获取可调用 appendChild 方法的第一项。

插入模板

此行不起作用:

$newpost = "<?php echo include('/assets/includes/post-template.php'); ?>";

因为这是你尝试作为DOM/HTML插入的PHP代码

请改为执行以下操作:

// New temp document
$templateDoc = new DOMDocument();
// Load your template file into this document
$templateDoc->loadHTMLFile($DOCUMENT_ROOT . '/assets/includes/post-template.php')
// Get all immediate children of your template document
$templateElements = $doc->getElementsByTagName('*');

在你的if语句中:

foreach($templateElements as $templateElement){
    // Append all children to your wrapper
    $wrapper->item(0)->appendChild($templateElement);
}