亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DOMDocument - appendXML() 不適用于表單

DOMDocument - appendXML() 不適用于表單

PHP
狐的傳說 2022-06-17 15:26:50
我遇到了 appendXML() 的問題,它不會將表單附加到 HTML。現在我有這個代碼$domdocument = new DOMDocument();$domdocument->loadHTML($html);$domlookup = new DOMXPath($domdocument);$formDivs = $domlookup->query("//*[contains(@class, 'formClass')]");$frag = $domdocument->createDocumentFragment();$frag->appendXML($formHTML);for ($i = $formDivs->length - 1; $i > -1; $i--) {    $formDivs->item($i)->parentNode->appendChild($frag);}@$html = $domdocument->saveHTML();該代碼運行良好,并使用“formCLass”類簡單的 HTML 附加到 div,如文本和帶有文本的 div。但是,當涉及到附加表單時……嗯……那是另一回事。我也嘗試過使用$frag->nodeValue = $formHTML;代替$frag->appendXML($formHTML);但它仍然沒有工作......試$frag->textContent = $formHTML;會將表單輸出為文本,顯然這對我不起作用。我怎么解決這個問題?表格代碼:<form method="post"><div class="fb-text form-group field-petname"><label for="petname" class="fb-text-label">"Pet Name"<span class="fb-required">*</span></label><input type="text" placeholder="Your Pet Name" required = "required" aria-required = "true" class="form-control" name="petname" id="petname"></div><div class="fb-text form-group field-petowner"><label for="petowner" class="fb-text-label">"Pet owner"<span class="fb-required">*</span></label><input type="text" placeholder="Insert owner's name" required = "required" aria-required = "true" class="form-control" name="petowner" id="petowner"></div><div class="fb-text form-group field-phone"><label for="phone" class="fb-text-label">"Phone number"<span class="fb-required">*</span></label><input type="text" placeholder="Phone number" required = "required" aria-required = "true" class="form-control" name="phone" id="phone"></div><div><div id="goldenmembership"><i class="fas fa-truck"></i>Free delivery!</div></div><div class="fb-select form-group field-brand"><label for="brand" class="fb-select-label">What brand would your pet like?<span class="fb-required">*</span></label>
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

我剛剛使用您的代碼和我自己的一些 HTML 組合了一個非常簡單的測試用例,它似乎可以附加,如下所示。


您的表單的 HTML 是否有可能無效?


如果您仍然遇到問題,您能否在某處發布您的 HTML,以便我們可以嘗試一下,好嗎?


$html = <<<HTML

<html>

    <body>

        <div class="formClass">

            <!-- Placeholder -->

        </div>

    </body>

</html>

HTML;


$formHtml = <<<HTML

<form action="#" method="post">

    <input type="text" id="test"/>

</form>

HTML;


$domdocument = new DOMDocument();

$domdocument->loadHTML($html);

$domlookup = new DOMXPath($domdocument);

$formDivs = $domlookup->query("//*[contains(@class, 'formClass')]");

$frag = $domdocument->createDocumentFragment();

$frag->appendXML($formHtml);

for ($i = $formDivs->length - 1; $i > -1; $i--) {

    $formDivs->item($i)->parentNode->appendChild($frag);

}

$html = $domdocument->saveHTML();


echo $html;

HTML 輸出:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

<html>

    <body>

        <div class="formClass">

            <!-- Placeholder -->

        </div>

    <form action="#" method="post">

    <input type="text" id="test">

</form></body>

</html>


查看完整回答
反對 回復 2022-06-17
  • 1 回答
  • 0 關注
  • 81 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號