Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Вставка html в html (или InnerHTML средствами PHP)


Автор: NTMan 19.6.2008, 01:37
Задача:
Есть два html файла.
1-файл некий шаблон сайта, 2-файл блок для AJAX наполнения через InnerHTML (JavaScript).
Надо средствами PHP проимитировать работу InnerHTML на случай если не будет работать JavaScript.
Делаю это так:
Код

$DOMDocument = new DOMDocument('1.0', 'WINDOWS-1251');
@$DOMDocument->loadHTML($this->page_code);

$ChangeNode = $DOMDocument->getElementById($divid);
if (isset($ChangeNode))
{
    $NewNode = $DOMDocument->createCDATASection($htmlcode);
    $ChangeNode->nodeValue='';
    $ChangeNode->appendChild($NewNode);
}

Ну почти получилось только фишка в том что InnerHTML можно делать над InnerHTMLом. А в результате полученного нового дерева поиск по id не осуществляеться по новым веткам. Я догадываюсь что дерево надо перестроить но как???
Если присваивать новый код в 
Код

$ChangeNode->nodeValue='';

то будет вообще без тэгов вставляться.

Есть идея проинициализоровать ещё один $DOMDocument, но непонятно тогда как из одного DOMDocument-а, скопировать дерево в другой DOMDocument.

Подскажите плиз.

Автор: NTMan 19.6.2008, 10:11
А вот ещё один вариант который не работает:

Код

$doc = new DOMDocument('1.0', 'WINDOWS-1251');
$insdoc = new DOMDocument('1.0', 'WINDOWS-1251');

@$doc->loadHTML($this->page_code);

$ChangeNode = $doc->getElementById($divid);
if (isset($ChangeNode))
{
    @$insdoc->loadHTML($htmlcode);
    $NewNode = $insdoc->childNodes->item(0);
    $NewNode = $doc->ImportNode($NewNode,true);
    $ChangeNode->appendChild($NewNode);
}



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)