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

时间:2016-02-28 22:32:50

标签: php html

我试图将一个存储在变量中的字符串附加到HTML元素。我编写了下面的函数,它工作正常,但我得到了#34;致命错误:未捕获错误:调用未定义的方法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>

1 个答案:

答案 0 :(得分:0)

您没有发布完整代码,但我假设您有一个DOMXPath,您可以在其中调用query方法。

修改:您确实发布了完整代码,并且您正在使用DOMXPath

<小时/> 此方法返回DOMNodeList,该列表包含DOMNode s。

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

使用此功能从DOMNode获取第一个DOMNodeList

$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);
}