国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Comment écrire des fonctions pour créer des éléments HTML AppendChild en PHP??
P粉814160988
P粉814160988 2024-03-30 21:45:27
0
1
644

Je souhaite écrire des fonctions qui créent des éléments HTML et ajoutent des éléments enfants les uns aux autres, plut?t que de faire écho à des morceaux de code HTML ou d'utiliser echo <<<HEREDOC.

createLoginBar 函數(shù)將創(chuàng)建一個(gè) div,我會(huì)將其附加到其他 HTML 元素到我的 createLogoutBanner en fonction.

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();
}
La ligne

createLogoutBanner 函數(shù)中的 $dom->appendChild($login_bar); donne l'erreur :

Erreur fatale : Uncaught TypeError : DOMNode::appendChild() : le paramètre n°1 ($node) doit être de type DOMNode, donné sous forme de cha?ne.

P粉814160988
P粉814160988

répondre à tous(1)
P粉504080992

En raison d'un état d'erreur DOMNode::appendChild() 期望傳遞一個(gè) DOMNode.
Votre fonction createLoginBar renvoie une cha?ne au lieu d'un n?ud.
Essayez les modifications suivantes?:

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

Ensuite, vous verrez l'erreur致命錯(cuò)誤:未捕獲的 DOMException:錯(cuò)誤文檔錯(cuò)誤. En effet, vous devez utiliser la même instance parent du DOMDocument pour créer les n?uds enfants. Au lieu de créer un nouveau DOMDocument dans chaque fonction, créez un DOMDocument de niveau supérieur et transmettez-le à chaque fonction à utiliser.

function createLoginBar(DOMDocument $dom):DOMNode 
{
    $login_bar = $dom->createElement('div');
    // the following line will cause invalid html if this function is called more than once
    $login_bar->setAttribute("id", "login_bar");

    return $login_bar;
}
function createBtn(DOMDocument $dom, string $value):DOMNode 
{
    $btn = $dom->createElement('button', $value);
    $btn->setAttribute("class", "widget");

    return $btn;
}

$dom = new DOMDocument();
$login_bar = createLoginBar($dom);
$login_btn = createBtn($dom, 'login');

$login_bar->appendChild($login_btn);

$dom->appendChild($login_bar);

echo $dom->saveHTML();

Résultat?:

Bac à sable

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal