如何在 PHP 中编写创建和追加子 HTML 元素的函数?

问题描述 投票:0回答:1

我不想回显大块 HTML 代码或使用

echo <<<HEREDOC
,我想编写创建 HTML 元素并将子元素相互附加的函数。

createLoginBar
函数将创建一个 div,我会将其附加到其他 HTML 元素到我的
createLogoutBanner
函数中。

function createLoginBar() {
    $dom = new DOMDocument();
    $login_bar = $dom->createElement('div');
    $login_bar->setAttribute("id", "login_bar");
    $dom->appendChild($login_bar);
    return $dom->saveHTML();
}

function createLogoutBanner() {
    $dom = new DOMDocument();
    $login_bar = createLoginBar();
    $login_flex = createBlankLoginFlex();
    $banner_login_form = createBannerLoginForm();
    $login_message_flex = createLoginMessageFlex();
    $nonmember_signup_flex = createNonSignupFlex();
    $not_a_member_form = createNotAMemberForm();

    $dom->appendChild($login_bar); //This line gives an error
    $login_bar->appendChild($login_flex);
    $login_flex->appendChild($banner_login_form);
    $login_bar->appendChild($login_message_flex);
    $login_bar->appendChild($nonmember_signup_flex);
    $nonmember_signup_flex->appendChild($not_a_member_form);
    return $dom->saveHTML();
}

$dom->appendChild($login_bar);
函数中的
createLogoutBanner
行给我错误:

致命错误:未捕获的类型错误:DOMNode::appendChild():参数 #1 ($node) 必须是 DOMNode 类型,字符串在中给出。

php html function appendchild createelement
1个回答
0
投票

由于错误状态

DOMNode::appendChild()
预计将通过
DOMNode
.
您的
createLoginBar
函数返回一个字符串而不是节点。
尝试以下更改:

function createLoginBar() {
    $dom = new DOMDocument();
    $login_bar = $dom->createElement('div');
    $login_bar->setAttribute("id", "login_bar");
    $dom->appendChild($login_bar);
    return $dom; //->saveHTML();
}
© www.soinside.com 2019 - 2024. All rights reserved.